NodePort 仅在单节点设置中的开发环境中才建议使用这种访问Dashboard的方式。
编辑kubernetes-dashboard服务。
$ kubectl -n kube-system编辑服务kubernetes-dashboard 您应该看到该服务的yaml表示形式。将类型:ClusterIP更改为类型:NodePort并保存文件。
可以在不使用编辑器的情况下将clusterip更改为nodeport命令行吗? 谢谢!
答案 0 :(得分:10)
您可以这样更改它
kubectl patch svc kubernetes-dashboard --type='json' -p '[{"op":"replace","path":"/spec/type","value":"NodePort"}]'
答案 1 :(得分:4)
要另外指定给定的nodePort:
kubectl patch svc my-service --type='json' -p '[{"op":"replace","path":"/spec/type","value":"NodePort"},{"op":"replace","path":"/spec/ports/0/nodePort","value":30040}]'
答案 2 :(得分:2)
您可以为此服务获取YAML:
kubectl -n kube-system get service kubernetes-dashboard -o yaml > kube-dash-svc.yaml
进行所需的更改(不使用编辑器)。 例如,
sed 's/ClusterIP/NodePort/' kube-dash-svc.yaml > new-kube-dash-svc.yaml
删除当前服务:
kubectl delete svc kubernetes-dashboard
最后将这个Yaml反馈回Kubernetes控制平面:
kubectl create -f new-kube-dash-svc.yaml
答案 3 :(得分:2)
这是从NodePort转换为ClusterIP的相反情况的答案。
kubectl patch svc my-service --type='json' -p '[{"op":"replace","path":"/spec/type","value":"ClusterIP"},{"op":"replace","path":"/spec/ports/0/nodePort","value":null}]'
答案 4 :(得分:0)
kubectl补丁svc you-svc -p'{“ spec”:{“ type”:“ NodePort”}}''