Woker Node위에 Pod들이 배포될때 다양한 스케줄링 기법을 제공합니다.
taint&tolerations
taint와 tolerations의 사용 목적: 특정 Node에 할당되지 않도록 방지.
taint
- taint가 설정된 노드에는 pod가 스케줄 되지 않는다.
- 특정 파드만 받기 위한 노드 설정
- kubectl taint node [node명] -l key1=value1 key2=value2:effect
kubectl taint nodes node-name key=value:taint-effect
→ kubectl taint nodes node1 app=blue:NoSchedule
apiVersion: v1
kind: Node
metadata:
name: sample-toler
labels:
label: taint-label
spec:
- effect: NoSchedule
key: color
value: red
tolerations
- taint를 무시하고 pod에 설정하면 해당 규칙대로 pod 스케줄링 가능
---
apiVersion: v1
kind: Pod
metadata:
name: sample-pod
spec:
containers:
- name: sample-container
image:
resources:
requests:
cpu:
memory:
limits:
cpu:
memory:
tolerations:
- effect: NoSchedule
key: color
value: red
taint effect 종류
NoSchedule, PreferNoSchedule, NoExecute
NoSchedule
- 일치하는 Toleration이 없으면 파드를 노드에 스케줄 할 수 없음
PreferNoSchedule
- 일치하는 Tolerations이 없으면 파드를 노드에 스케줄할 수 없도록 시도는 하지만, 필수는 아님
NoExecute
- 해당 Effect가 있는 Taint가 노드에 추가되면 Taint를 허용하지 않는 파드는 즉시 축출되고 일치하지 않는 Toleration의 파드는 스케줄링 하지 않음
NodeSelector
- kubectl label nodes [node명] key=value
kubectl label nodes node01 size=Large
apiVersion: v1
kind: Pod
metadata:
name: sample-pod
labels:
app: myapp
spec:
containers:
- name: nginx-container
image:
nodeSelector:
size: Large
nodeAffinity
파드가 노드에 스케줄되도록 반드시 규칙을 만족해야하는 것
Node에 Label을 설정하고 해당 라벨에 맞춰 파드를 노드에 배포
NodeSelector와 동일한 개념이지만 디테일한 설정이 가능
Available 타입
requireDuringSchedulingIgnoreDuringExecution
- 파드가 노드에 스케줄되도록 반드시 규칙을 만족해야하는 것
preferredDuringSchedulingIgnoreDuringExecution
- 후자는 스케줄러가 시도하려고는 하지만, 보증하지않는 선호(preferences)를 지정
참고: IgnoreDuringExecution: 노드의 레이블이 런타임 중에 변경되어 파드의 어피니티 규칙이 더 이상 충족되지 않아도 파드는 그 노드에서 계속 동작한다는 의미이다.
planned 타입
requireDuringSchedulingRequiredDuringExecution
- 파드가 노드에 스케줄되도록 반드시 규칙을 만족해야하며, 런타임 중에 변경되어 파드의 어피니티 규칙이 더이상 충족되지 않으면 파드는 그 노드에서 계속 동작하지 않음
'Kubernetes' 카테고리의 다른 글
Ingress(인그레스) (0) | 2024.02.17 |
---|---|
None-Selector 서비스 (0) | 2024.02.17 |
Resource Requests/Limits (0) | 2024.02.13 |
서비스 API 카테고리(ExternalName) (0) | 2024.02.11 |
서비스 API 카테고리(Headless) (0) | 2024.02.11 |