摘要:指定若干機器進行部署將節點機器按照它們的進行歸類。使用選擇器類似于上文的,在創建資源的文件中使用字段,如即可將指定到或上部署運行。
好久沒有更新了,今天在接到一個部署任務時,要求在集群中某幾個機器上部署,查了一下github,有這方面的相關文檔,翻譯過來記錄一下,有興趣的同學也可以直接去github看官方文檔
單節點部署單節點部署使用nodeName字段進行配置。在啟動的json/yaml文件中,pod的spec結構下增加字段:"nodeName":"{nodename}"。
我們可以在master上通過指令: kubectl get nodes看到集群中的slaver節點的nodeName和他們的標簽,狀態:
在創建pod或rc時,加入nodeName即可以指定將pod部署在指定的節點上,上圖為例,json文件如:
{ "apiVersion": "v1", "kind": "ReplicationController", "metadata": { "labels": { "name": "benchcpu" }, "name": "benchcpu-controller" }, "spec": { "replicas": 3, "selector": { "name": "benchcpu" }, "template": { "metadata": { "labels": { "name": "benchcpu" } }, "spec": { "containers": [ { "image": "registry.hub.huangyang.com.cn/sysbench:0.5shell", "name": "sysbench", "command":[ "./todo.sh", "--num-threads=1 --forced-shutdown=1 --max-time=60 --test=cpu --cpu-max-prime=10000000 run ", "0" ] } ], "nodeName": "10.126.72.31" } } } }
那么這個名為bench的replication controller 就會將所有的pod都部署在10.126.72.31上。
指定若干機器進行部署將slaver節點機器按照它們的labels進行歸類。使用"nodeSelector"進行選擇。
管理node的標簽
使用kubectl label nodes {nodename} {key=value} 進行標簽的添加。如:
kubectl label nodes 10.126.72.31 points=test
會給10.126.72.31這個節點添加一個標簽:points=test
我們給31.32兩臺機器同時加上這個標簽。
使用nodeSelector選擇器
類似于上文的nodeName,在創建資源的json/yaml文件中使用nodeSelector字段,如:
{ "apiVersion": "v1", "kind": "ReplicationController", "metadata": { "labels": { "name": "benchcpu" }, "name": "benchcpu-controller" }, "spec": { "replicas": 3, "selector": { "name": "benchcpu" }, "template": { "metadata": { "labels": { "name": "benchcpu" } }, "spec": { "containers": [ { "image": "registry.hub.huangyang.com.cn/sysbench:0.5shell", "name": "sysbench", "command":[ "./todo.sh", "--num-threads=1 --forced-shutdown=1 --max-time=60 --test=cpu --cpu-max-prime=10000000 run ", "0" ] } ], "nodeSelector":{ "points":"test" } } } } }
即可將pod指定到31或32上部署運行。
需要注意不論是nodeName,nodeSelector,還是下文提到的 node affinity,針對他們的過濾條件,即使目前沒有滿足過濾條件的node,master也會指派至少一個node去部署pod,因為選擇器的意思是選擇“可以被分配到的節點”,而不是指定“不可被分配到的節點”。
1.2中的新特性:node affinity1.2即將出現功能更強大的選擇器,但是目前已知,可以實現如: label:"points":"test"and"test2" 的多項選擇(也就是選擇label中"points"的value為"test" 或 "test2", 并且不止是"and",而是與或非的聯合判斷式),node affinity最終將會取代 node Selector。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/32451.html
摘要:與已運行相關的過濾規則負責檢查待調度與上已有之間的親和性關系。并且每個打分函數都可以配置對應的權重值,下面介紹調度器策略配置時,也會涉及權重值的配置。默認權重值是,如果覺得某個打分函數特別重要,便可以加大該權重值。 一、概述 Kubernetes 是 Google 開源的容器集群管理系統(谷歌內部:Borg),而今天要介紹的 kube-scheduler 是 k8s 系統的核心組件之一...
摘要:升級注意事項使用推薦使用,但仍然支持和。如果內核不支持,會包含一個無法使用的警告。在使用創建對象時,如果不指定,使用讀取該字段會顯示中指定的默認值。如果要,推薦使用中的命令。分配相關的問題。 之前,我們介紹了kubernetes 1.2.0的新特性,還不清楚的童鞋查看這里。 本文討論的是使用 kubernetes 1.2.0 的注意事項,包括對周邊組件的要求(比如docker的兼容性)...
摘要:換句話說,親和性選擇節點僅在調度時起作用。先創建集群反親和性打散各個副本再部署服務,需要打散并且與服務共存,配置如下注意需要進行大量處理,所以會明顯減慢大型集群的調度時間,不建議在大于幾百個節點的集群中使用該功能。 一、概述 前一篇文章 Kubernetes 調度器淺析,大致講述了調度器的工作原理及相關調度策略。這一章會繼續深入調度器,介紹下親和性調度。 Kubernetes 支持限制...
摘要:指定若干機器進行部署將節點機器按照它們的進行歸類。使用選擇器類似于上文的,在創建資源的文件中使用字段,如即可將指定到或上部署運行。 好久沒有更新了,今天在接到一個部署任務時,要求在集群中某幾個機器上部署,查了一下github,有這方面的相關文檔,翻譯過來記錄一下,有興趣的同學也可以直接去github看官方文檔 單節點部署 單節點部署使用nodeName字段進行配置。在啟動的json/y...
摘要:隨著發布,現在能支持個節點的集群即千萬請求秒,附帶對大多數操作尾部這段延遲降低。的千萬并發令人乍舌三個月后,將會再次帶來倍的提升。 隨著Kubernetes1.2v發布,K8S現在能支持1000個節點的集群(即1千萬請求/秒),附帶對大多數API操作(99%尾部這段)延遲降低80%。這意味著在最近的6個月內,K8S支持的容量增加了10倍同時還保證用戶使用感受——99%pod啟動時間少于...
閱讀 1317·2021-11-24 10:24
閱讀 4147·2021-11-22 15:29
閱讀 1088·2019-08-30 15:53
閱讀 2794·2019-08-30 10:54
閱讀 1983·2019-08-29 17:26
閱讀 1287·2019-08-29 17:08
閱讀 608·2019-08-28 17:55
閱讀 1583·2019-08-26 14:01