kubernetes調(diào)度之NodeSelector使用解讀
Kubernetes的調(diào)度有簡(jiǎn)單,有復(fù)雜,指定NodeName和使用NodeSelector調(diào)度是最簡(jiǎn)單的,可以將Pod調(diào)度到期望的節(jié)點(diǎn)上。
本文主要介紹kubernetes調(diào)度框架中的NodeName和NodeSelector。
1 NodeName
Pod.spec.nodeName用于強(qiáng)制約束將Pod調(diào)度到指定的Node節(jié)點(diǎn)上,這里說(shuō)是“調(diào)度”,但其實(shí)指定了nodeName的Pod會(huì)直接跳過(guò)Scheduler的調(diào)度邏輯,直接寫入PodList列表,該匹配規(guī)則是強(qiáng)制匹配。
例子:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tomcat-deploy
spec:
replicas: 1
template:
metadata:
labels:
app: tomcat-app
spec:
nodeName: k8s.node1 #指定調(diào)度節(jié)點(diǎn)為k8s.node1
containers:
- name: tomcat
image: tomcat:8.0
ports:
- containerPort: 80802 NodeSelector
Pod.spec.nodeSelector是通過(guò)kubernetes的label-selector機(jī)制進(jìn)行節(jié)點(diǎn)選擇,由scheduler調(diào)度策略MatchNodeSelector進(jìn)行l(wèi)abel匹配,調(diào)度pod到目標(biāo)節(jié)點(diǎn),該匹配規(guī)則是強(qiáng)制約束。
啟用節(jié)點(diǎn)選擇器的步驟為:
- Node添加label標(biāo)記
#標(biāo)記規(guī)則:kubectl label nodes <node-name> <label-key>=<label-value> kubectl label nodes k8s.node1 cloudnil.com/role=dev #確認(rèn)標(biāo)記 root@k8s.master1:~# kubectl get nodes k8s.node1 --show-labels NAME STATUS AGE LABELS k8s.node1 Ready 29d beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,cloudnil.com/role=dev,kubernetes.io/hostname=k8s.node1
- Pod定義中添加nodeSelector
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tomcat-deploy
spec:
replicas: 1
template:
metadata:
labels:
app: tomcat-app
spec:
nodeSelector:
cloudnil.com/role: dev #指定調(diào)度節(jié)點(diǎn)為帶有l(wèi)abel標(biāo)記為:cloudnil.com/role=dev的node節(jié)點(diǎn)
containers:
- name: tomcat
image: tomcat:8.0
ports:
- containerPort: 8080總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
kubernetes 使用jq命令對(duì)資源配置查看方式
這篇文章主要介紹了kubernetes 使用jq命令對(duì)資源配置查看方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
Kubernetes存儲(chǔ)系統(tǒng)數(shù)據(jù)持久化管理詳解
這篇文章主要為大家介紹了Kubernetes存儲(chǔ)系統(tǒng)數(shù)據(jù)持久化管理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
CentOS 7下YUM 本地倉(cāng)庫(kù)的搭建詳細(xì)步驟
這篇文章主要介紹了CentOS 7下YUM 本地倉(cāng)庫(kù)的搭建詳細(xì)步驟的相關(guān)資料,希望通過(guò)本文能幫助到大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-09-09
K8s中Pod處于Pending狀態(tài)的八種原因分析
文章詳細(xì)介紹了Pod處于Pending狀態(tài)的八種常見(jiàn)原因,并提供了相應(yīng)的排查和解決方法,這些原因包括資源不足、調(diào)度約束、存儲(chǔ)依賴、鏡像問(wèn)題、配額限制、網(wǎng)絡(luò)暗礁、系統(tǒng)級(jí)異常以及冷門陷阱,每種原因都附帶了具體的診斷方法和解決建議,感興趣的朋友一起看看吧2025-02-02
詳解Rainbond內(nèi)置ServiceMesh微服務(wù)架構(gòu)
這篇文章主要為大家介紹了詳解Rainbond內(nèi)置ServiceMesh微服務(wù)架構(gòu),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
k8s部署并測(cè)試ingress-nginx的詳細(xì)過(guò)程
這篇文章主要介紹了k8s部署并測(cè)試ingress-nginx的詳細(xì)過(guò)程,本文通過(guò)一個(gè)demo示例給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-04-04
Kubernetes教程之Windows?HostProcess?運(yùn)行容器化負(fù)載
這篇文章主要介紹了Kubernetes?Windows?HostProcess?運(yùn)行容器化負(fù)載,本篇內(nèi)容還是比較多的,總共包含了?Windows?HostProcess的創(chuàng)建、為?Windows?Pod?和容器配置?GMSA?和?Windows?的?Pod?和容器配置?RunAsUserName三大功能模塊,需要的朋友可以參考下2022-07-07

