...
코드 블럭 |
---|
# kubectl label nodes w2-k8s disktype=ssd # kubectl get nodes --show-labels -L disktype |
2.2 Node Anti-Affinity(Pod Anti-Affinity 내용)
다른 파드와 겹치지 않게 할 때 사용합니다.
파드가 특정 노드에 스케줄링되지 않도록 설정하는 방법으로 크게 두 가지 유형이 있습니다.
requiredDuringSchedulingIgnoredDuringExecution
파드가 반드시 조건을 만족하지 않는 노드에만 스케줄링됩니다.
preferredDuringSchedulingIgnoredDuringExecution
조건을 만족하지 않는 노드에 우선적으로 스케줄링되지만, 필요하다면 다른 노드에 스케줄링될 수 있습니다.
...
podAffinity는 app=frontend
라벨을 가진 파드가 있는 노드에example-pod
4를 3을 배치합니다.podAntiAffinity
는app=backend
라벨을 가진 파드가 없는 노드에example-pod4
를pod3을
우선 배치합니다.
...
4. Taint 및 Tolerations
...
코드 블럭 |
---|
# kubectl taint nodes w2-k8s disktype=ssd:NoSchedule #kubectl# kubectl describe nodes | grep -i taint |
...
NoSchedule
: 이 Taint를 가진 노드에는 Toleration이 있는 파드만 스케줄링될 수 있습니다.PreferNoSchedule
: 가능하면 이 Taint를 가진 노드에는 Toleration이 있는 파드만 스케줄링하려고 합니다.NoExecute
: Toleration이 없는 기존 파드는 이 노드에서 축출됩니다.
...
4.2 파드에 Toleration 설정
Tolerations
는 파드에 설정되며, 특정 Taint를 가진 노드에 스케줄링될 수 있도록 허용합니다.
...
코드 블럭 |
---|
apiVersion: v1 kind: Pod metadata: name: example-podpod4 spec: tolerations: - key: "disktype" operator: "Equal" value: "ssd" effect: "NoSchedule" containers: - name: mycontainer image: nginx |
disktype=ssd
와NoSchedule
효과를 가진 Taint를 허용하여, 해당 Taint를 가진 노드에 파드를 스케줄링할 수 있도록 합니다.
4.3 노드에 Taint 해제
코드 블럭 |
---|
# kubectl taint nodes w2-k8s disktype=ssd:NoSchedule-
node/w2-k8s untainted |
5. Cordon 및 Uncordon
5.1 Cordon
...