您可通過為節點設定節點標籤,然後通過配置 nodeSelector
對 pod 調度進行強制限制式,將 pod 調度到指定的 Node 節點上。關於 nodeSelector 的詳細實現原理,請參見 nodeselector。
出於業務情境需要,如您需要將管控服務部署到 Master 節點;或者將某些服務部署到具有 SSD 盤的機器上。您可以採用這種方式實現指定節點調度。
前提條件
您已經成功部署一個 Kubernetes 叢集,參見建立Kubernetes叢集。
步驟1 為節點添加標籤
- 登入Container Service管理主控台。
- 在 Kubernetes 菜單下,單擊左側導覽列中的 ,進入節點列表頁面。
- 選擇所需的叢集,在頁面右上方單擊標籤管理。
- 在節點列表中,選擇所需節點,然後單擊添加標籤。本例中選擇一個 worker 節點。
- 在彈出的添加標籤對話方塊中,輸入標籤的名稱和值,然後單擊確定。
您可以在標籤管理頁面,看到該節點具有
group:worker
標籤。
您也可以通過命令 kubectl label nodes <node-name> <label-key>=<label-value>
為節點添加標籤。
步驟2 將 pod 部署到指定節點
- 登入Container Service管理主控台。
- 在 Kubernetes 菜單下,單擊左側導覽列中的 ,進入部署列表頁面。
- 單擊頁面右上方的使用模板建立。
- 對模板進行相關配置,部署一個 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: {}
- 單擊建立 後,會提示部署狀態資訊。 成功後,單擊Kubernetes 控制台前往控制台查看部署狀態。
- 您可單擊 pod 名稱,進入詳情頁,瞭解 pod 詳情。
您可看到 pod 的標籤、所處的節點 ID 等資訊,表明該 pod 已經成功部署到具有
group:worker
標籤的指定節點上。