由于业务场景需要,有时您需要将管控服务部署到Master节点,或者将某些服务部署到具有SSD盘的机器上。通过容器服务管理控制台,您可以快速地将Pod调度到指定的Node节点上。本文介绍如何通过设置节点标签、配置模板等操作,将Pod调度到指定Node节点上。

背景信息

您可通过设置节点标签,然后通过配置nodeSelector强制约束Pod调度,将Pod调度到指定的Node节点上。关于nodeSelector的详细实现原理,请参见nodeselector

步骤1 设置节点标签

  1. 登录容器服务管理控制台
  2. 在左侧导航栏选择集群 > 节点,进入节点管理页面。
  3. 选择所需的集群,在页面右上角单击标签与污点管理,进入标签与污点管理页面。
  4. 在节点列表中,选择所需节点,然后单击左下角的添加标签
  5. 在弹出的添加对话框中,输入标签的名称,然后单击确定
    • 名称:标签名称由字母、数字、中划线(-)、下划线(_)、小数点(.)组成,且必须以字母或者数字开头和结尾。
    • :标签值可以为空字符串或由字母、数字、中划线(-)、下划线(_)、小数点(.)组成,且必须以字母或者数字开头和结尾。

步骤2 部署Pod到指定节点

  1. 单击控制台左侧导航栏中的应用 > 无状态
  2. 单击页面右上角的使用模板创建
    模板创建
  3. 对模板进行相关配置,部署一个Pod。
    • 集群:选择所需的集群。
    • 命名空间:选择资源对象所属的命名空间,本例中是default。
    • 示例模板:本示例选择自定义模板。

    本示例的编排模板如下。

     apiVersion: v1
     kind: Pod
     metadata:
       labels:
         name: hello-pod
       name: hello-pod
     spec:
       containers:
         - image: nginx
           imagePullPolicy: IfNotPresent
           name: hello-pod
           ports:
             - containerPort: 8080
               protocol: TCP
           resources: {}
           securityContext:
             capabilities: {}
             privileged: false
           terminationMessagePath: /dev/termination-log
       dnsPolicy: ClusterFirst
       restartPolicy: Always
       nodeSelector:                    
         group: worker                           ##注意与前面配置的节点标签一致
       status: {}
  4. 单击创建后,会提示部署状态信息。

验证结果

您可以选择以下任意一种方式查看Pod是否已成功部署到指定节点上。

  1. 部署成功后,单击页面底部提示信息中的Pod名称,进入该Pod的详情页,查看Pod详情。
    您可看到Pod的标签、所处的节点ID等信息,表明该Pod已经成功部署到具有group:worker标签的指定节点上。查看pod详情
  2. 部署成功后,在左侧导航栏选择应用 > 容器组,单击所需的Pod名称,进入该Pod的详情页。

    您可看到Pod的标签、所处的节点ID等信息,表明该Pod已经成功部署到具有group:worker标签的指定节点上。

    查看部署状态