affinity
노드의 레이블을 기반으로 파드를 스케줄할 수 있는 노드를 제한하는 기능으로 파드가 노드를 선택해서 들어가는것
affinity를 사용해 노드 스케줄링하기
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: <nam 보통 type이라는 말을 많이 씀 nodetype disktype 등..>
operator: In
values:
- <value 값,, request, gateway, ssd 등...>
containers:
- name: hi
노드에 Role 추가하기.
Before label:
eneral@master-node:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
master-node Ready master 23m v1.18.2
slave-node Ready <none> 19m v1.18.2
kubectl label nodes <your_node> kubernetes.io/role=<your_label>
[kubernetes.io/role](http://kubernetes.io/role) 없이 바로 label이름을 가면 롤은 none 그대로
In my case slave-node e.g.
kubectl label nodes slave-node kubernetes.io/role=worker
After label:
general@master-node:~$ kubectl label nodes slave-node kubernetes.io/role=worker
node/slave-node labeled
general@master-node:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
master-node Ready master 24m v1.18.2
slave-node Ready worker 21m v1.18.2
You can also change the label. Just put --overwrite
kubectl label --overwrite nodes kubernetes.io/role=e.g.kubectl label --overwrite nodes slave-node kubernetes.io/role=worker1
After overwriting the label:
general@master-node:~$ kubectl label --overwrite nodes slave-node kubernetes.io/role=worker1
node/slave-node labeled
general@master-node:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
master-node Ready master 36m v1.18.2
slave-node Ready worker1 32m v1.18.2
Add Role
kubectl label node <node name> node-role.kubernetes.io/<role name>=<key - (any name)>
Remove Role
kubectl label node <node name> node-role.kubernetes.io/<role name>-
반응형
광고
광고