KubernetesのTaintsの設定をNoneにすることでデプロイができるようになる
Nodeの名前を確認する
$ kubectl get node NAME STATUS ROLES AGE VERSION k8s-pri-master Ready <none> 7h1m v1.25.5 k8s-pub-master Ready control-plane 22h v1.25.5 今回、k8s-pub-masterのMasterに対して、デプロイができるように設定を行う。
Taintsの設定値の確認
Taintsが設定されている場合は以下のように表示される
$ kubectl describe node k8s-pub-master (省略) CreationTimestamp: Mon, 06 Nov 2023 10:21:54 +0000 Taints: node-role.kubernetes.io/control-plane:NoSchedule
Taintsの設定を外す
$ kubectl taint nodes k8s-pub-master node-role.kubernetes.io/control-plane:NoSchedule- node/k8s-pub-master untainted $ kubectl describe node k8s-pub-master (省略) CreationTimestamp: Mon, 06 Nov 2023 10:21:54 +0000 Taints: <none>
Master nodeにデプロイできることを確認
nodeSelectorでMaster nodeを指定してデプロイができることを確認する。
以下のyamlファイル、nginx-deployment_masternode.yamlを作成する。
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 1 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80 nodeName: k8s-pub-master
デプロイを行い、Master nodeにデプロイされたことを確認する
$ kubectl apply -f ./nginx-deployment_masternode.yaml deployment.apps/nginx-deployment created $ kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES nginx-deployment-79548f7fb-hbs7d 1/1 Running 0 81s 182.16.9.4 k8s-pub-master <none> <none>