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)文章
CentOS?8.2?k8s?基礎(chǔ)環(huán)境配置
這篇文章主要介紹了CentOS?8.2?k8s?基礎(chǔ)環(huán)境配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10
K8S單節(jié)點(diǎn)部署及集群部署過(guò)程
這篇文章主要介紹了K8S單節(jié)點(diǎn)部署及集群部署過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-06-06
k8s自動(dòng)化安裝腳本(二進(jìn)制)的操作步驟
Kubernetes?k8s安裝腳本,非常好用,下面這篇文章主要給大家介紹了關(guān)于k8s自動(dòng)化安裝腳本(二進(jìn)制)的操作步驟,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
k8s編排之StatefulSet知識(shí)點(diǎn)詳解二
這篇文章主要為大家介紹了k8s編排之StatefulSet知識(shí)點(diǎn)的部分詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
K8s準(zhǔn)入控制Admission?Controller深入介紹
本篇我們將聚焦于?kube-apiserver?請(qǐng)求處理過(guò)程中一個(gè)很重要的部分?--?準(zhǔn)入控制器(Admission?Controller)深入講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04

