开发者社区> 问答> 正文

指定节点调度


您可通过为节点设置节点标签,然后通过配置 nodeSelector 对 pod 调度进行强制约束,将 pod 调度到指定的 Node 节点上。关于 nodeSelector 的详细实现原理,请参见 nodeselector
出于业务场景需要,如您需要将管控服务部署到 Master 节点;或者将某些服务部署到具有 SSD 盘的机器上。您可以采用这种方式实现指定节点调度。

前提条件


您已经成功部署一个 Kubernetes 集群,参见 创建 Kubernetes 集群

步骤1 为节点添加标签

  1. 登录容器服务管理控制台
  2. 在 Kubernetes 菜单下,单击左侧导航栏中的集群 > 节点 ,进入节点列表页面。
  3. 选择所需的集群,在页面右上角单击标签管理。
  4. 在节点列表中,选择所需节点,然后单击添加标签。本例中选择一个 worker 节点。
  5. 在弹出的添加标签对话框中,输入标签的名称和值,然后单击确定。  您可以在标签管理页面,看到该节点具有 group:worker标签。


您也可以通过命令 kubectl label nodes <node-name> <label-key>=<label-value> 为节点添加标签。

步骤2 将 pod 部署到指定节点

  1. 登录容器服务管理控制台
  2. 在 Kubernetes 菜单下,单击左侧导航栏中的应用 > 部署 ,进入部署列表页面。
  3. 单击页面右上角的使用模板创建。
  4. 对模板进行相关配置,部署一个 pod,完成配置后,单击创建。
    • 集群:选择所需的集群。
    • 命名空间:选择资源对象所属的命名空间,本例中是 default。
    • 示例模板:本示例选择自定义模板。


  1. 本示例的编排模板如下:

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: {}
5.  单击创建 后,会提示部署状态信息。 成功后,单击Kubernetes 控制台前往控制台查看部署状态。


6.   [font=PingFangSC, "]您可单击 pod 名称,进入详情页,了解 pod 详情。
您可看到 pod 的标签、所处的节点 ID 等信息,表明该 pod 已经成功部署到具有 group:worker 标签的指定节点上。

展开
收起
青蛙跳 2018-08-17 19:04:49 1301 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
如何让k8s集群30s扩容3000个Pod 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载