ABTCEFG♪ 안녕하세요, 여러분!
BTC_김쿼카입니다.
쿠버네티스의 스케줄링에 대해 알아보는 첫번째 시간! 오늘은 taint와 toleration에 대해 알아보도록 해요.
taint
- Node에 적용되는 속성으로, Node에 스케줄링될 Pod를 제한할 수 있는 기능을 제공함
- 노드마다 설정 가능하며, 설정한 노드에는 pod가 스케줄 되지 않음
taint 옵션
- NoSchedule
toleration이 없으면 pod가 스케줄되지 않음
기존에 실행되던 pod에는 적용되지 않으며 앞으로 실행될 Pod에 대해서만 스케줄링 제한 - PreferNoSchedule
toleration이 없으면 pod가 스케줄되지 않음
기존 실행 중인 Pod에는 적용되지 않으며, 앞으로 생성될 Pod도 스케줄링 되는 것을 선호하진 않지만 해당 Node 밖에 스케줄링 될 곳이 없다면 스케줄링을 허용함. - NoExecute
toleration이 없으면 pod가 스케줄되지 않음
앞으로 실행될 Pod 스케줄링은 물론 기존에 실행되던 pod도 toleration이 없으면 Node에서 제거함
노드에 taint를 설정하는 명령어 : kubectl taint nodes $nodename $key=$value:$option
kubectl taint nodes node1 key1=value1:NoSchedule
# taint 확인
kubectl describe nodes node1
toleration
- Pod에 설정하며, taint를 무시할 수 있음
- 특정 taint를 용인하는 toleration 설정을 가진 pod는 해당 Node에 할당 가능함
toleration 옵션
- key, value, effect에 원하는 값 지정 가능함
- operator 값에는 equal, exists 가 있음
Equal은 키,값, 효과가 모두 같은지 확인을 하고, Exists는 값을 필요로 하지 않음
tolerations:
- operator: Exists
어떤 종류의 taint가 걸려있던 상관없이 스케줄링됨
tolerations:
- key: key1
operator: Exists
키가 key1인 모든 taint에 적용됨
tolerations:
- key: role
operator: Equal
value: system
effect: NoShedule
role=system:NoSchedule Taint에 적용됨
'INFRA > Operation' 카테고리의 다른 글
Terraform 리소스에 대한 이해 - AWS 3편 (0) | 2022.10.04 |
---|---|
쿠버네티스 이론STEP12 Scheduling 2 Affinity & AntiAffinity (0) | 2022.10.04 |
Terraform 리소스에 대한 이해 - AWS 1편 (2) | 2022.09.19 |
쿠버네티스 이론 STEP10 Cluster Upgrade (0) | 2022.09.16 |
Terraform 리소스에 대한 이해 - Azure 5편 (0) | 2022.09.15 |
댓글