竞彩足球比分新浪爱彩网

我們用服務每一個客戶

Our intention to service each customer

誠實 守信 專業 專注

用 label 控制 Pod 的位置 - 每天5分鐘玩轉 Docker 容器技術(12

We will do our best to provide you with better service!
您當前的位置:仙桃云科 > 新聞資訊 >

默認配置下,Scheduler 會將 Pod 調度到所有可用的 Node。不過有些情況我們希望將 Pod 部署到指定的 Node,比如將有大量磁盤 I/O 的 Pod 部署到配置了 SSD 的 Node;或者 Pod 需要 GPU,需要運行在配置了 GPU 的節點上。

Kubernetes 是通過 label 來實現這個功能的。

label 是 key-value 對,各種資源都可以設置 label,靈活添加各種自定義屬性。比如執行如下命令標注 k8s-node1 是配置了 SSD 的節點。

kubectl label node k8s-node1 disktype=ssd

然后通過 kubectl get node --show-labels 查看節點的 label。

disktype=ssd 已經成功添加到 k8s-node1,除了 disktype,Node 還有幾個 Kubernetes 自己維護的 label。

有了 disktype 這個自定義 label,接下來就可以指定將 Pod 部署到 k8s-node1。編輯 nginx.yml:

在 Pod 模板的 spec 里通過 nodeSelector 指定將此 Pod 部署到具有 label disktype=ssd 的 Node 上。

部署 Deployment 并查看 Pod 的運行節點:

全部 6 個副本都運行在 k8s-node1 上,符合我們的預期。

要刪除 label disktype,執行如下命令:

kubectl label node k8s-node1 disktype-

 - 即刪除。

不過此時 Pod 并不會重新部署,依然在 k8s-node1 上運行。

除非在 nginx.yml 中刪除 nodeSelector 設置,然后通過 kubectl apply 重新部署。

Kubernetes 會刪除之前的 Pod 并調度和運行新的 Pod。

Deployment 相關操作就討論到這里。

Copyright © 2009-2017 仙桃云科網絡科技有限公司 (www.ulqfn.com.cn) All Rights Reserved.
鄂ICP備12009831號-1
  • 在線咨詢

  • 在線咨詢:
  • 仙桃網站建設
  • 仙桃網站運營
  • 仙桃SEO推廣
  • 電話:

  • 13047143144
  • 13047143144
竞彩足球比分新浪爱彩网