调度应用Pod至指定节点
由于业务场景需要,有时您需要将服务部署到特定节点,或者将某些服务部署到具有SSD盘的节点上。通过容器服务管理控制台,您可以快速地将Pod调度到指定的节点上。本文介绍如何通过设置节点标签、配置模板等操作,将Pod调度到指定节点上。
前提条件
背景信息
您可通过设置节点标签,然后通过配置nodeSelector
强制约束Pod调度,将Pod调度到指定的Node节点上。关于nodeSelector的详细实现原理,请参见nodeselector。
步骤一:设置节点标签
登录容器服务管理控制台。
在控制台左侧导航栏,单击集群。
在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
在集群管理页左侧导航栏,选择 。
在页面右上角单击标签与污点管理,进入标签与污点管理页面。
在标签页签中,选择目标节点,然后单击左下角的添加标签。
在弹出的添加对话框中,输入标签的名称和值,然后单击确定。
名称:标签名称由字母、数字、短划线(-)、下划线(_)、小数点(.)组成,且必须以字母或者数字开头和结尾。
值:标签值可以为空字符串或由字母、数字、短划线(-)、下划线(_)、小数点(.)组成,且必须以字母或者数字开头和结尾。
步骤二:部署Pod到指定节点
在控制台左侧导航栏,单击集群。
在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
在集群管理页左侧导航栏,选择 。
在无状态页面,单击页面右上角的使用YAML创建资源。
对模板进行相关配置,部署一个Pod。
命名空间:选择资源对象所属的命名空间,本示例中设置命名空间为default。
示例模板:本示例选择自定义模板。
本示例的YAML模板如下。
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: {}
单击创建后,会提示部署状态信息。
验证结果
您可以选择以下任意一种方式查看Pod是否已成功部署到指定节点上。
方式一:部署成功后单击页面Pod名称
部署成功后,单击页面底部提示信息中的Pod名称,进入容器组页面。
在容器组页面,单击目标Pod名称,进入该Pod的详情页。
您可看到Pod的标签、所处的节点ID等信息,表明该Pod已经成功部署到具有
group:worker
标签的指定节点上。
方式二:容器组页面查找目标容器
在控制台左侧导航栏,单击集群。
在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
在集群管理页左侧导航栏,选择 。
在容器组页面,单击目标Pod名称,进入该Pod的详情页。
您可看到Pod的标签、所处的节点ID等信息,表明该Pod已经成功部署到具有
group:worker
标签的指定节点上。