Can change clusterip to nodeport command line without editor?

6/30/2018

NodePort This way of accessing Dashboard is only recommended for development environments in a single node setup.

Edit kubernetes-dashboard service.

$ kubectl -n kube-system edit service kubernetes-dashboard You should see yaml representation of the service. Change type: ClusterIP to type: NodePort and save file.

Can change clusterip to nodeport command line without editor? Thanks!

-- Anton Patsev
kubernetes

3 Answers

6/30/2018

you can change it like this

kubectl patch svc kubernetes-dashboard --type='json' -p '[{"op":"replace","path":"/spec/type","value":"NodePort"}]'
-- sfgroups
Source: StackOverflow

6/30/2018

You can just fetch the YAML for this given service:

kubectl -n kube-system get service kubernetes-dashboard -o yaml > kube-dash-svc.yaml

Make the changes you want (without using an editor). e.g.,

sed 's/ClusterIP/NodePort/' kube-dash-svc.yaml > new-kube-dash-svc.yaml

Delete the current service:

kubectl delete svc kubernetes-dashboard

And finally feed this yaml back to the Kubernetes control plane:

kubectl create -f new-kube-dash-svc.yaml
-- the_marcelo_r
Source: StackOverflow

12/9/2019

kubectl patch svc you-svc -p '{"spec": {"type": "NodePort"}}'

-- 袁文涛
Source: StackOverflow