I need only deploy nginx-ingress controller to kubernetes master nodes, by using Helm chart "ingress-nginx". It provided an option "controller.nodeSelector" to select k8s nodes for deployment. So I want to use this option to select k8s master nodes with label node-role.kubernetes.io/master=
, but tried different formats, can't have it work as expected.
Failed case:
helm install --set controller.hostNetwork=true --set controller.hostPort.enabled=true --set controller.extraArgs.enable-ssl-passthrough="" --set controller.replicaCount=1 --set controller.nodeSelector."node-role\.kubernetes\.io/master"="" --namespace rwe ingress-nginx ingress-nginx/ingress-nginx
Could you help advise how to have this option take into effect? Thanks.
First remove the taint from master node to make it schedulable
kubectl taint node master node-role.kubernetes.io/master:NoSchedule-
Add a label master=true
to the master node
kubectl label nodes master master=true
And then use below helm command. Note --set-string
instead of set
helm install --set controller.hostNetwork=true --set controller.hostPort.enabled=true --set controller.extraArgs.enable-ssl-passthrough="" --set controller.replicaCount=1 --set-string controller.nodeSelector.master=true --namespace rwe ingress-nginx ingress-nginx/ingress-nginx