目录
一、调度
二、nodeName
三、nodeSelector
nodeSelector 是节点选择约束的实用形式,它的原理是匹配某些特殊的标签,满足该条件的节点就可以被调度过去。
[root@server2 schedule]# cat pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
nodeSelector:
disktype: ssd
应用pod.yaml文件,创建pod,查看状态为pending,因为三个节点都没有ssd这个标签
给server3加标签disktype=ssd,再次查看pod的状态,已经running了
删除标签后,查看pod的状态,还是running,这是因为,pod已经调度过去了,删除标签也不影响
四、亲和与反亲和
[root@server2 schedule]# cat pod1.yaml
apiVersion: v1
kind: Pod
metadata:
name: node-affinity
spec:
containers:
- name: nginx
image: nginx
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- server3
- server4
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
preference:
matchExpressions:
- key: disktype
operator: In