GitHub

https://github.com/Choidongjun0830

클라우드

Taints and Tolerations

gogi masidda 2024. 12. 16. 15:17
  • Taint는 오점.
    • 노드에 Taint를 설정해주는 것.
  • Tolerations는 오점을 견딜 수 있는지.
    • Pod가 노드의 오점을 견딜 수 있는지 설정해주는 것. 
  • 오점이 없으면 스케줄러는 Pod를 적절히 아무 노드에 할당할 수 있다.
  • 오점이 있으면 오점을 견딜 수 없는 Pod는 그 노드에 할당할 수 없다. 
  • Pod가 Node의 오점을 견딜 수 있다고 해서, 그 Pod가 무조건 그 Node로 가는 것이 아니다.
    • 이것은 nodeAffinity를 통해서 할 수 있다. 
  • Taints와 Tolerations는 그냥 Pod가 그 Node에 할당될 수 있는지만 설정하는 것이다.
  • 마스터 노드에는 자동으로 Taint가 설정되어서 Pod가 할당되지 않는 것이다. 

Node에 Taint 설정

kubectl taint nodes node-name key=value:taint-effect
  • taint-effect
    • Pod가 노드의 taint를 견디지 못하면 어떻게 할지 
    • NoSchedle
    • PreferNoSchedule
    • NoExecute 
  • 예시
kubectl taint nodes node1 app=blue:NoSchedule

 

Pod에 Toleration 설정

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
spec:
  containers:
  - name: nginx-container
    image: nginx 
  tolerations:
  - key: "app"
    operator: "Equal"
    value: "blue"
    effect: "NoSchedule"
728x90

'클라우드' 카테고리의 다른 글

Monitor Kubernetes Cluster  (0) 2024.12.17
Node Selector, Node Affinity  (0) 2024.12.16
Maual Scheduling  (0) 2024.12.16
Secret, ConfigMap  (0) 2024.12.07
환경 변수  (2) 2024.11.28