CKA 공부 7일차
in Devops on Kubernetes
Node Selectors
만약 크기가 큰 파드를 특정 노드에 배치시키고 싶은 경우 어떻게할 수 있을까?
이런 경우 노드 셀렉터를 사용해볼 수 있다.
apiVersion: v1
kind: Pod
metadata:
name: myapp
spec:
containers:
- name: nginx
image: nginx
nodeSelector:
size: Large
k8s는 어떻게 노드가 Large인 것을 알 수 있을까?
이는 노드에 라벨링으로 가능하다.
kubectl label nodes <node-name> <label-key>=<label-value>
kubectl label nodes node-1 size=Large
Node Affinity
Node Selector의 단점은 Large OR Medium 같은 표현이 불가능하다는데 있다.
강한 힘에는 복잡도가 따르는 법!
쓰기가 아주 까다롭다.
apiVersion: v1
kind: Pod
metadata:
name: myapp
spec:
containers:
- name: nginx
image: nginx
aiffinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: size
operator: In
values:
- Large
- Medium
위와 같이 사용하면 Large Or Medium인 노드에만 배포를 해준다.
operator를
NotIn
으로 바꾸면 Not 오퍼레이션 기능도 제공한다.