设置指定节点调度(nodeSelector)
在Kubernetes中,选择某个节点调度最简单的方式是在工作负载中配置nodeSelector字段,您可以通过nodeSelector字段设置希望调度的目标节点标签。Kubernetes只会将Pod调度到拥有指定标签的节点上。
步骤一:为节点添加标签
- 登录CCE控制台,单击集群名称进入集群。
- 在集群控制台左侧导航栏中选择“节点管理”,切换至“节点”页签,勾选目标节点,并单击左上方“标签与污点管理”。
- 在弹出的窗口中,在“批量操作”下方单击“新增批量操作”,然后选择“添加/更新”或“删除”。
填写需要增加/删除标签的“键”和“值”,单击“确定”。
例如,填写的键为“deploy_qa”,值为“true”,就可以从逻辑概念表示该节点是用来部署QA(测试)环境使用。
图1 添加节点标签 - 标签添加成功后,再次进入该界面,在节点数据下可查看到已经添加的标签。
步骤二:创建指定节点调度的工作负载
- 使用kubectl连接集群,具体操作请参见通过kubectl连接集群。
- 创建名为“nginx.yaml”的YAML文件,此处文件名可自定义。
为工作负载设置nodeSelector。
apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: nodeSelector: deploy_qa: "true" containers: - image: nginx:latest imagePullPolicy: IfNotPresent name: nginx imagePullSecrets: - name: default-secret
例如,填写的键为“deploy_qa”,值为“true”,这表明该Pod将被调度到有deploy_qa=true标签的节点。
- 创建工作负载。
kubectl apply -f nginx.yaml
步骤三:验证调度结果
- 登录CCE控制台,单击集群名称进入集群。
- 在集群控制台左侧导航栏中选择“工作负载”,
- 单击工作负载名称,进入详情页面,查看实例列表,验证Pod全部运行在目标节点上,即节点包含deploy_qa=true标签。