文档首页/ 云容器引擎 CCE/ 用户指南/ 工作负载/ 调度工作负载/ 设置指定节点调度(nodeSelector)
更新时间:2024-11-12 GMT+08:00

设置指定节点调度(nodeSelector)

在Kubernetes中,选择某个节点调度最简单的方式是在工作负载中配置nodeSelector字段,您可以通过nodeSelector字段设置希望调度的目标节点标签。Kubernetes只会将Pod调度到拥有指定标签的节点上。

前提条件

您需要为目标节点添加自定义标签,工作负载可根据该节点标签进行调度,操作步骤请参见添加/删除节点标签

创建指定节点调度的工作负载

  1. 使用kubectl连接集群,具体操作请参见通过kubectl连接集群
  2. 创建名为“nginx.yaml”的YAML文件,此处文件名可自定义。

    为工作负载设置nodeSelector,例如,填写的键为“deploy_qa”,值为“true”,这表明该Pod将被调度到有deploy_qa=true标签的节点。示例如下:
    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

  3. 创建工作负载。

    kubectl apply -f nginx.yaml

  4. 验证Pod全部运行在目标节点上。

    kubectl get pod -o wide

    回显如下,节点192.168.0.103为包含deploy_qa=true标签的节点。

    NAME                     READY   STATUS    RESTARTS   AGE     IP              NODE                                   NOMINATED NODE   READINESS GATES
    nginx-66859f4f48-xgp2g   1/1     Running   0          6h57m   172.16.3.0   192.168.0.103   <none>           <none>
    nginx-66859f4f48-t9gqj   1/1     Running   0          6h57m   172.16.3.1   192.168.0.103   <none>           <none>
    nginx-66859f4f48-2grhq   1/1     Running   0          6h57m   172.16.3.2   192.168.0.103   <none>           <none>