您可通過為節點設定節點標籤,然後通過配置 nodeSelector 對 pod 調度進行強制限制式,將 pod 調度到指定的 Node 節點上。關於 nodeSelector 的詳細實現原理,請參見 nodeselector

出於業務情境需要,如您需要將管控服務部署到 Master 節點;或者將某些服務部署到具有 SSD 盤的機器上。您可以採用這種方式實現指定節點調度。

前提條件

您已經成功部署一個 Kubernetes 叢集,參見建立Kubernetes叢集

步驟1 為節點添加標籤

  1. 登入Container Service管理主控台
  2. 在 Kubernetes 菜單下,單擊左側導覽列中的叢集 > 節點 ,進入節點列表頁面。
  3. 選擇所需的叢集,在頁面右上方單擊標籤管理


  4. 在節點列表中,選擇所需節點,然後單擊添加標籤。本例中選擇一個 worker 節點。


  5. 在彈出的添加標籤對話方塊中,輸入標籤的名稱和值,然後單擊確定


    您可以在標籤管理頁面,看到該節點具有 group:worker標籤。


您也可以通過命令 kubectl label nodes <node-name> <label-key>=<label-value> 為節點添加標籤。

步驟2 將 pod 部署到指定節點

  1. 登入Container Service管理主控台
  2. 在 Kubernetes 菜單下,單擊左側導覽列中的應用 > 部署 ,進入部署列表頁面。
  3. 單擊頁面右上方的使用模板建立


  4. 對模板進行相關配置,部署一個 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: {}
  5. 單擊建立 後,會提示部署狀態資訊。 成功後,單擊Kubernetes 控制台前往控制台查看部署狀態。


  6. 您可單擊 pod 名稱,進入詳情頁,瞭解 pod 詳情。
    您可看到 pod 的標籤、所處的節點 ID 等資訊,表明該 pod 已經成功部署到具有 group:worker 標籤的指定節點上。