개요
Kubernetes에서 특정 노드에 파드 하나만 띄우는 방법에 대해 알아보겠습니다.
설정 방법
1. NodeAffinity를 이용하는 방법
NodeAffinity는 파드가 특정 노드에만 배치되도록 하는 기능입니다.
<예제>
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- node1
2. Taints and Tolerations를 이용하는 방법
Taints는 특정 노드에만 어떤 파드가 배치되지 않도록 하는 기능입니다. Tolerations는 특정 파드가 특정 Taints가 설정된 노드에도 배치될 수 있도록 하는 기능입니다.
<예제>
taints:
- key: "dedicated"
value: "special-user"
effect: "NoSchedule"
tolerations:
- key: "dedicated"
operator: "Equal"
value: "special-user"
effect: "NoSchedule"
3. PodAntiAffinity를 이용하는 방법
PodAntiAffinity는 파드가 특정 노드에만 배치되지 않도록 하는 기능입니다.
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- myapp
topologyKey: kubernetes.io/hostname
4. DaemonSet으로 배포
DaemonSet은 클러스터 전체 또는 특정 노드에 파드를 배포하는 기능입니다. 이를 이용하여 특정 노드에만 파드를 배포할 수 있습니다.
마치며
제약을 걸지 않고, Kubernetes를 이용하여 자동으로 파드를 재배치, 재시작, 확장 등을 하는 것이 일반적입니다. 이를 위해서는 Replication Controller, Replica Set, Deployment 등을 사용하면 됩니다. 이들을 이용하면 자동적으로 파드를 유지, 관리, 재배치 할 수 있습니다.
'devops > Kubernetes' 카테고리의 다른 글
쿠버네티스 관리형 서비스 비교 ( GKE vs EKS vs AKS) (0) | 2020.09.21 |
---|---|
쿠버네티스를 터미널에서 유용하게 사용할 수 있는 툴 모음 (0) | 2020.06.09 |
쿠버네티스(kubernetes) 기초 (0) | 2020.05.11 |