
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
# 여기부터
nodeName: $NODE_NAME
# 여기까지 추가한다.
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
# 여기부터
nodeSelector:
lable: first
# 여기까지 추가한다.
Affinity 종류
정책 종류
Operator[4]
전략...
spec:
affinity:
podAntiAffinity:
# 아래 조건의 해당하는 Pod 있으면 Pod를 배치 하지 않는다.
requiredDuringSchedulingIgnoredDuringExecution:
# 반드시 아래 조건에 맞게 Pod 배치
- labelSelector:
matchExpressions:
# [key:app, value:consumer-sedam-master]를 label로 가지는 Pod를 피해서 배치
- key: app
operator: In
values:
- consumer-sedam-master
# Node의 hostname 정보 기준으로 Pod 배치
topologyKey: kubernetes.io/hostname
...후략
apiVersion: v1
kind: Pod
metadata:
name: example-pod
consumer-type: consumer-detail
spec:
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
consumer-type: consumer-detail