kube-scheduler is responsible for scheduling pods on nodes.
The kube-scheduler is only responsible for deciding which pod goes on which node.
It doesn't actually place the pod on the nodes, that's the job of the kubelet.
why do you need a scheduler?
- filter nodes
- rank nodes
resource requirements and limits
taints and tolerations
node selectors/affinity
Kube-Scheduler는 쿠버네티스 클러스터에서 파드의 효율적인 배치를 담당하는 중요한 구성 요소다.
이는 노드의 자원 가용성, 파드의 요구사항, taint 및 toleration, node selector 및 affinity 등 다양한 요소를 고려하여 파드가 가장 적합한 노드에 배치되도록 한다.
이러한 과정을 통해 클러스터의 자원 활용도를 최적화하고, 파드의 성능과 안정성을 보장한다.
개요
- kube-scheduler는 파드(Pods)를 노드(Nodes)에 스케줄링한다.
- kube-scheduler의 역할은 어떤 파드가 어떤 노드에 위치할지 결정하는 것이다. 실제로 파드를 노드에 배치하는 것은 kubelet의 역할이다.
스케줄러가 필요한 이유
- filter nodes: 적합한 노드를 선택하기 위해 여러 기준을 사용하여 노드를 필터링
- rank nodes: 필터링된 노드 중에서 가장 적합한 노드를 선정하기 위해 랭킹을 매김
- resource requirements and limit: 각 파드의 자원 요구사항과 제한을 고려하여 적절한 노드를 선택
Taints(테인트)와 Tolerations(톨러레이션)
- taints: 특정 노드에 파드가 배치되는 것을 제한하기 위해 노드에 설정할 수 있는 속성
- tolerations: 파드가 테인트된 노드에도 배치될 수 있게 하는 파드의 속성
노드 셀렉터/친화성
- node selector: 파드가 배치될 수 있는 노드를 레이블을 통해 지정
- node affinity: 노드 셀렉터보다 더 세밀한 조건을 설정하여 파드가 배치될 노드를 지정
'DevOps > Kubernetes' 카테고리의 다른 글
[Kubernetes][CKA] Kube Proxy (0) | 2023.12.13 |
---|---|
[Kubernetes][CKA] Kubelet (0) | 2023.12.13 |
[Kubernetes][CKA] Kube Controller Manager (0) | 2023.12.13 |
[Kubernetes][CKA] Kube-API Server (0) | 2023.12.13 |
[Kubernetes][CKA] ETCD (0) | 2023.12.13 |