Taint 란?
- 특정 Node에 파드가 스케줄되는 것을 제한
Tolerations 란?
- Pod가 특정 Taint가 적용된 노드에서 실행하는 속성
- ex) Platform 속성 pod 배포하기 위해, Service 노드에는 Taint를 설정하여 Tolerations과 Node Affinity(k8s가 pod를 특정 노드에 스케쥴링 하기 위해 사용하는 매커니즘) 설정이 있는 pod만 스케쥴링하고, Platform 노드에는 Taint를 설정하지 않고 일반 pod만 스케쥴링하는 방법
-> Node에는 Taint, Pod에는 Tolerations 설정
Nod Taint 설정
- 카펜터 NodePool 설정 추가
- Node 매니페스트 확인 가능
apiVersion: karpenter.sh/v1beta1
kind: NodePool
metadata:
node: service
(생략)
taints:
- effect: NodeSchedule # PreferNoSchedule, NoExecute
key: node
value: service
Tolerations, Node Affinity 설정
- 파드 속성에 Tolerations, Node Affinity 설정 추가
apiVersion: apps/v1
kind: Deployment
tolerations:
- key: "node"
value: "service"
effect: "NodeSchedule"
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution: # preferredDuringSchedulingIgnoredDuringExecution
nodeSelectorTerms:
- matchExpressions:
- key: node
operator: In
values:
- service
'Infra > Kubernetes' 카테고리의 다른 글
Kubernetes Objects 정리 (0) | 2023.02.15 |
---|---|
우분투 용량 부족 시 확인 및 조치 (0) | 2023.02.14 |
윈도우에서 우분투 가상환경 띄우고 Minikube에서 Kubeflow 설치하는 방법 (0) | 2023.02.14 |