让容器在指定节点运行 - Assigning Pods to Nodes
容器组在运行时可以绑定或者优先使用某个节点。这样就可以指定有读写要求的应用部署到集群中有SSD硬盘的节点;还有需要在一个集群中进行构建任务时,就只需要指定到性能强劲的节点中去。
下面只讨论nodeSelector方式
nodeSelector
使用时需要在PodSpec中增加nodeSelector配置,包含一个或一组key:value.
Step One: Attach label to the node
- 查询节点信息
$ kubectl get nodes --show-labels
可以返回当前所有节点信息,包括了系统默认标签.
- 给节点打标签
kubectl label nodes <node-name> <label-key>=<label-value>
$ kubectl label nodes rose nodeName=rose
Step Two: Add a nodeSelector field to your pod configuration
- 原pod配置
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
- 新pod配置-带指定标签
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
nodeSelector:
nodeName: rose
创建并查询结果
$ kubectl create -f pod.yaml
$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
nginx 6/6 Running 0 3h 10.233.81.220 rose