k8s(用label控制Pod的位置)

1. label的作用

RC與Pod的關聯是通過Label來實現的。Label機制是Kubernetes中的一個重要設計,通過Label進行對象的弱關聯,可以靈活地進行分類和選擇。
默認配置下,Scheduler會將Pod調度到所有可用的Node。不過有些情況我們希望將Pod部署到指定的Node,比如將有大量磁盤I/O的Pod部署到配置了SSD的Node;或者Pod需要GPU,需要運行在配置了GPU的節點上。
Kubernetes是通過label來實現這個功能的
label是key-value對,各種資源都可以設置label,靈活添加各種自定義屬性

2.進行實驗

執行如下命令標註k8s-node1是配置了SSD的節點
在這裏插入圖片描述
在這裏插入圖片描述

然後通過kubectl get node --show-labels # 查看節點的label

在這裏插入圖片描述
disktype=ssd已經成功添加到k8s-node1,除了disktype,Node還有幾個Kubernetes自己維護的labe
有了disktype這個自定義label,接下來就可以指定將Pod部署到k8s-node1(server2)。編輯nginx.yml
在這裏插入圖片描述
這時候運行配置文件:
在這裏插入圖片描述
全部6個副本都運行在server2上,符合我們的預期
在這裏插入圖片描述除非在nginx.yml中刪除nodeSelector設置,然後通過kubectl apply重新部署
在這裏插入圖片描述
在這裏插入圖片描述
Kubernetes會刪除之前的Pod並調度和運行新的Pod

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章