Kubernetes · Concepts ·
[Kubernetes] Control-Plane Node에 Pod 띄우기
Control-Plane Node에 Pod를 올릴 경우 #
deployment yaml 생성 #
1apiVersion: apps/v1
2kind: Deployment
3metadata:
4 name: nginx-deployment
5 labels:
6 app: nginx
7spec:
8 replicas: 1
9 selector:
10 matchLabels:
11 app: nginx
12 template:
13 metadata:
14 labels:
15 app: nginx
16 spec:
17 containers:
18 - name: nginx
19 image: nginx:latest
20 ports:
21 - containerPort: 80Apply #
1kubectl apply -f nginx-deployment.yaml
2
3deployment.apps/nginx-deployment createdPod 상태 확인 (Pending 상태로 지속 됨) #
1kubectl get pods
2
3NAME READY STATUS RESTARTS AGE
4nginx-deployment-6dd86d77d-4rkhf 0/1 Pending 0 20mPod 상태 자세히 확인 #
1kubectl describe pod nginx-deployment-6dd86d77d-4rkhf
2
3Name: nginx-deployment-6dd86d77d-4rkhf
4Namespace: default
5
6...✂...
7
8Events:
9 Type Reason Age From Message
10 ---- ------ ---- ---- -------
11 Warning FailedScheduling 43s (x17 over 22m) default-scheduler 0/3 nodes are available: 3 node(s) had taints that the pod didn't tolerate.위처럼 Pending 상태로 안올라오는 이유는 Contrl-Plane Node에 Pod를 못 올리도록 설정되어 있기 때문 #
Contrl-Plane Node 확인 (아래 master는 Contrl-Plane Node Name) #
1kubectl describe node master | grep Taints
2
3Taints: node-role.kubernetes.io/master:NoSchedulePod를 올리고 싶을 경우 #
Taint 설정 해제 #
1kubectl taint nodes –all node-role.kubernetes.io/master-
2
3node/master untainted
4Pod 상태 재조회 (자동으로 restart)
5kubectl get pods -o wide
6
7NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
8nginx-deployment-6dd86d77d-4rkhf 1/1 Running 0 35m 10.244.0.7 master <none> <none>다시 Pod를 못 올리도록 설정하고 싶은 경우 #
Taint 설정 #
1kubectl taint nodes master node-role.kubernetes.io=master:NoSchedule
2
3node/master tainted확인 #
1kubectl describe node master | grep Taints
2
3Taints: node-role.kubernetes.io=master:NoScheduleAdvertisement