国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束

這篇具有很好參考價(jià)值的文章主要介紹了K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

taints 是鍵值數(shù)據(jù),用在節(jié)點(diǎn)上,定義污點(diǎn);
tolerations 是鍵值數(shù)據(jù),用在pod上,定義容忍度,能容忍哪些污點(diǎn)。

污點(diǎn)

污點(diǎn)是定義在k8s集群的節(jié)點(diǎn)上的鍵值屬性數(shù)據(jù),可以決定拒絕那些pod。
給了Node選則的主動(dòng)權(quán),給Node打個(gè)污點(diǎn),不容忍 的Pod就調(diào)度不上來(lái)。

現(xiàn)象:剛部署好的K8S集群,默認(rèn)master節(jié)點(diǎn)上不會(huì)被調(diào)度來(lái)任何pod。
原因:master節(jié)點(diǎn)上有個(gè)污點(diǎn)

看 master節(jié)點(diǎn)的信息

kubectl describe nodes k8s-master1

K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生

Taints: node-role.kubernetes.io/control-plane:NoSchedule(排斥等級(jí))

查看幫助命令,看如何設(shè)置Node的污點(diǎn)(taints是spec字段下的子字段)

kubectl explain node.spec.taints

K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生

解釋說(shuō)明

taints的 effect 字段(必填) 用來(lái)定義對(duì)pod對(duì)象的排斥等級(jí)

  • NoSchedule:僅影響pod調(diào)度過(guò)程,僅對(duì)未調(diào)度的pod有影響。(例如:這個(gè)節(jié)點(diǎn)的污點(diǎn)改了,使得之前調(diào)度的pod不能容忍了,對(duì)現(xiàn)存的pod對(duì)象不產(chǎn)生影響)
  • NoExecute:既影響調(diào)度過(guò)程,又影響現(xiàn)存的pod對(duì)象(例如:如果現(xiàn)存的pod不能容忍節(jié)點(diǎn)后來(lái)加的污點(diǎn),這個(gè)pod就會(huì)被驅(qū)逐)排斥等級(jí)最高
  • PreferNoSchedule:最好不,也可以,是NoSchedule的柔性版本。(例如:pod實(shí)在沒(méi)其他節(jié)點(diǎn)調(diào)度了,也可以到到這個(gè)污點(diǎn)等級(jí)的節(jié)點(diǎn)上)排斥等級(jí)最低

上面看到的 master節(jié)點(diǎn)的污點(diǎn)是Noschedule
所以默認(rèn)創(chuàng)建的pod都不會(huì)調(diào)度到master上,因?yàn)閯?chuàng)建的pod沒(méi)有容忍度

查看部署后master節(jié)點(diǎn)上Pod的信息

kubectl describe pods kube-apiserver-k8s-master1 -n kube-system

相關(guān)信息的片段
K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生

可以看到這個(gè)pod的容忍度是NoExecute,則可以調(diào)度到k8s-master1上。
兼容了等級(jí)比NoExecute低的污點(diǎn)。

注意:在自建pod里污點(diǎn)等級(jí),必須完全匹配才行

示例1: 使用污點(diǎn)排斥等級(jí)是NoSchedule

給k8s-node2打上污點(diǎn)
污點(diǎn)的key為node-type,值為production,排斥等級(jí)是NoSchedule

kubectl taint node k8s-node2 node-type=production:NoSchedule

ps. 排斥等級(jí)":NoSchedule"必填,否則創(chuàng)建失敗

K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生

給k8s-node2打污點(diǎn)后,pod如果不能容忍就不會(huì)調(diào)度過(guò)來(lái)
創(chuàng)建pod資源文件

vim taint-pod.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: taint-pod
  namespace: default
  labels:
    tomcat:  tomcat-pod
spec:
  containers:
  - name:  taint-pod
    ports:
    - containerPort: 8080
    image: tomcat:8.5-jre8-alpine
imagePullPolicy: IfNotPresent 

創(chuàng)建pod資源

kubectl apply -f taint-pod.yaml

查看pod

kubectl get pods -o wide

K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生

可以看到被調(diào)度到k8s-node1上了,因?yàn)閗8s-node2這個(gè)節(jié)點(diǎn)打了污點(diǎn),而在創(chuàng)建pod的時(shí)候沒(méi)有容忍度,所以k8s-node2上不會(huì)有pod調(diào)度上去的

示例2 :使用污點(diǎn)類(lèi)型是NoExecute

在示例1的基礎(chǔ)上,給剛剛的k8s-node1打污點(diǎn)

kubectl taint node k8s-node1 node-type=dev:NoExecute

查看pod

kubectl get pods -o wide

K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生
上面可以看到已經(jīng)存在的pod節(jié)點(diǎn)都被攆走了

只看節(jié)點(diǎn)的污點(diǎn)

kubectl describe node k8s-node1|grep Taints

K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生
ps. 刪除污點(diǎn)的方式

kubectl taint nodes k8s-node2 node-type-

K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生

容忍度

重新給node1打上污點(diǎn),保證2個(gè)工作節(jié)點(diǎn)node上都打了污點(diǎn)。通過(guò)配置Pod的容忍度完成調(diào)度

查看幫助命令,看如何設(shè)置Pod的容忍度(tolerations是spec字段下的子字段)

kubectl explain pod.spec.tolerations

重點(diǎn)部分截圖:
K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生

解釋說(shuō)明

  • effect:用來(lái)匹配node的污點(diǎn)等級(jí)
  • key:node標(biāo)簽的鍵
  • operator:匹配表達(dá)式
  • value:node標(biāo)簽的值
  • tolerationSeconds:與NoExecute搭配使用表示驅(qū)逐時(shí)間

tolerations 中的 effect 字段 用來(lái)匹配污點(diǎn)等級(jí)

  • NoExecute
  • NoSchedule
  • PreferNoSchedule

示例1 創(chuàng)建pod時(shí),指定具體可容忍的node的特征

創(chuàng)建pod資源文件

vim vim pod-demo-1.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: myapp-deploy
  namespace: default
spec:
      containers:
      - name: myapp
        image: ikubernetes/myapp:v1
        imagePullPolicy: IfNotPresent
        ports:
        - name: http
          containerPort: 80
      tolerations:  # 設(shè)置Pod的容忍度
      - key: "node-type"   # node標(biāo)簽的鍵
        operator: "Equal"  # 匹配方式為等值匹配
        value: "production" # node標(biāo)簽的值
        effect: "NoExecute" # node的污點(diǎn)等級(jí)
        tolerationSeconds: 3600 # 與NoExecute搭配使用表示驅(qū)逐時(shí)間

創(chuàng)建pod資源

kubectl apply -f pod-demo-1.yaml

查看pod

kubectl get pods -o wide

K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生

還是顯示pending,因使用的是equal(等值匹配),所以 key、value和effect 必須和 node 節(jié)點(diǎn)定義的污點(diǎn)完全匹配才可以。
把上面yaml文件調(diào)整一下:
1、配置effect: “NoExecute"變成"NoSchedule”
2、去掉tolerationSeconds

apiVersion: v1
kind: Pod
metadata:
  name: myapp-deploy
  namespace: default
spec:
      containers:
      - name: myapp
        image: ikubernetes/myapp:v1
        imagePullPolicy: IfNotPresent
        ports:
        - name: http
          containerPort: 80
      tolerations:  
      - key: "node-type"   
        operator: "Equal"  
        value: "production" 
        effect: "NoSchedule"  

重建pod資源

kubectl delete -f pod-demo-1.yaml

kubectl apply -f pod-demo-1.yaml

查看pod

kubectl get pods -o wide

K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生

上面就可以調(diào)度到k8s-node2上了,因?yàn)樵趐od中定義的容忍度能容忍node節(jié)點(diǎn)上的污點(diǎn)

示例2:使用非精準(zhǔn)容忍度匹配

再調(diào)整 pod-demo-1.yaml 的部分配置

apiVersion: v1
kind: Pod
metadata:
  name: myapp-deploy
  namespace: default
spec:
      containers:
      - name: myapp
        image: ikubernetes/myapp:v1
        imagePullPolicy: IfNotPresent
        ports:
        - name: http
          containerPort: 80
      tolerations:  
      - key: "node-type"   
        operator: "Exists"    # 調(diào)整了匹配方式
        value: ""             # 去掉了node的污點(diǎn)值
        effect: "NoSchedule"  # 匹配的等級(jí)

只要對(duì)應(yīng)的鍵是存在的,exists,其值被自動(dòng)定義成通配符

重建pod資源

kubectl delete -f pod-demo-1.yaml

kubectl apply -f pod-demo-1.yaml

查看pod

kubectl get pods -o wide

K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生

發(fā)現(xiàn)還是調(diào)度到k8s-node2上

再次修改

apiVersion: v1
kind: Pod
metadata:
  name: myapp-deploy
  namespace: default
spec:
      containers:
      - name: myapp
        image: ikubernetes/myapp:v1
        imagePullPolicy: IfNotPresent
        ports:
        - name: http
          containerPort: 80
      tolerations:  
      - key: "node-type"   
        operator: "Exists"  # 調(diào)整了匹配方式
        value: ""           # 去掉了值
        effect: ""          # 去掉node的污點(diǎn)等級(jí)

有一個(gè)node-type的鍵,不管值是什么,不管是什么污點(diǎn)等級(jí),都能容忍

重建pod資源

kubectl delete -f pod-demo-1.yaml

kubectl apply -f pod-demo-1.yaml

查看pod

kubectl get pods -o wide

可以看到k8s-node2和k8s-node1節(jié)點(diǎn)上都有可能有pod被調(diào)度
K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生
K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束,kubernetes,kubernetes,容器,云原生文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-825527.html

到了這里,關(guān)于K8S之運(yùn)用污點(diǎn)、容忍度設(shè)置Pod的調(diào)度約束的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 十七、K8S-污點(diǎn)(Taint)和容忍度(toleration)

    目錄 一、什么是污點(diǎn)和容忍度 1、官方解釋?zhuān)?2、自我理解: 3、污點(diǎn) 1、污點(diǎn)的組成: 2、污點(diǎn)的三種策略: ? ? ? ? 1、PreferNoSchedule ? ? ? ? 2、NoExecute ? ? ? ? ?3、NoSchedule ?4、容忍 1、Toleration基本用法 2、用法: 3、注意: 二、使用演示 三、Pod優(yōu)先級(jí)調(diào)度 1、調(diào)度策略:

    2024年02月20日
    瀏覽(14)
  • 【云原生】POD污點(diǎn)和容忍度

    節(jié)點(diǎn)親和性 是 Pod 的一種屬性,它使 Pod 被吸引到一類(lèi)特定的節(jié)點(diǎn) (這可能出于一種偏好,也可能是硬性要求)。 污點(diǎn)(Taint) 則相反——它使節(jié)點(diǎn)能夠排斥一類(lèi)特定的 Pod。 容忍度(Toleration) 是應(yīng)用于 Pod 上的。容忍度允許調(diào)度器調(diào)度帶有對(duì)應(yīng)污點(diǎn)的 Pod。 容忍度允許調(diào)度

    2024年02月16日
    瀏覽(25)
  • 學(xué)習(xí)筆記十八:污點(diǎn)、容忍度

    給了節(jié)點(diǎn)選則的主動(dòng)權(quán),我們給節(jié)點(diǎn)打一個(gè)污點(diǎn),不容忍的pod就運(yùn)行不上來(lái),污點(diǎn)就是定義在節(jié)點(diǎn)上的鍵值屬性數(shù)據(jù),可以定決定拒絕那些pod; taints是鍵值數(shù)據(jù),用在節(jié)點(diǎn)上,定義污點(diǎn); tolerations是鍵值數(shù)據(jù),用在pod上,定義容忍度,能容忍哪些污點(diǎn) pod親和性是pod屬性;但

    2024年02月12日
    瀏覽(21)
  • 【k8s】pod調(diào)度——親和,反親和,污點(diǎn),容忍

    【k8s】pod調(diào)度——親和,反親和,污點(diǎn),容忍

    官方網(wǎng)址:https://kubernetes.io/zh/docs/concepts/scheduling-eviction/assign-pod-node/ pod.spec.nodeAffinity ●preferredDuringSchedulingIgnoredDuringExecution:軟策略? p開(kāi)頭 ●requiredDuringSchedulingIgnoredDuringExecution:硬策略? r開(kāi)頭 pod.spec.affinity.podAffinity/podAntiAffinity ●preferredDuringSchedulingIgnoredDuringExecution:軟策

    2024年02月05日
    瀏覽(27)
  • k8s 污點(diǎn)和容忍

    k8s 污點(diǎn)和容忍

    在 Kubernetes 中,節(jié)點(diǎn)親和性 NodeAffinity 是 Pod 上定義的一種屬性,能夠使 Pod 按我們的要求調(diào)度到某個(gè)節(jié)點(diǎn)上,而 Taints(污點(diǎn)) 則恰恰相反,它是 Node 上的一個(gè)屬性,可以讓 Pod 不能調(diào)度到帶污點(diǎn)的節(jié)點(diǎn)上,甚至?xí)?duì)帶污點(diǎn)節(jié)點(diǎn)上已有的 Pod 進(jìn)行驅(qū)逐。當(dāng)然,對(duì)應(yīng)的 Kubernetes 可以

    2023年04月08日
    瀏覽(21)
  • k8s概念-污點(diǎn)與容忍

    k8s 集群中可能管理著非常龐大的服務(wù)器,這些服務(wù)器可能是各種各樣不同類(lèi)型的,比如機(jī)房、地理位置、配置等,有些是計(jì)算型節(jié)點(diǎn),有些是存儲(chǔ)型節(jié)點(diǎn),此時(shí)我們希望能更好的將 pod 調(diào)度到與之需求更匹配的節(jié)點(diǎn)上。 此時(shí)就需要用到污點(diǎn)(Taint)和容忍(Toleration),這些配

    2024年02月14日
    瀏覽(20)
  • K8s的親和、反親和、污點(diǎn)、容忍

    K8s的親和、反親和、污點(diǎn)、容忍

    親和性的原理其實(shí)很簡(jiǎn)單,主要利用label標(biāo)簽結(jié)合nodeSelector選擇器來(lái)實(shí)現(xiàn) 從pod出發(fā),可以分成親和性和反親和性,分別對(duì)應(yīng)podAffinity和podAntiAffinity。 從node出發(fā),也可以分成親和性和反親和性,分別對(duì)應(yīng)nodeAffinity和nodeAntiAffinity。 從操作指令來(lái)講,可以有l(wèi)n、Notln、Exists、DoesN

    2024年04月27日
    瀏覽(25)
  • k8s-污點(diǎn) (Taint)和容忍 (Tolerations)

    k8s-污點(diǎn) (Taint)和容忍 (Tolerations)

    節(jié)點(diǎn)親和性,是Pod的一種屬性(偏好或硬性要求),它使Pod被吸引到一類(lèi)特定的節(jié)點(diǎn) Taint 則相反,它使節(jié)點(diǎn)能夠排斥一類(lèi)特定的 Pod Taint 和 Toleration 相互配合,可以用來(lái)避免 Pod 被分配到不合適的節(jié)點(diǎn)上。每個(gè)節(jié)點(diǎn)上都可以應(yīng)用一個(gè)或多個(gè) taint ,這表示對(duì)于那些不能容忍這些

    2024年01月16日
    瀏覽(22)
  • k8s打污點(diǎn)、取消污點(diǎn)、驅(qū)動(dòng)pod

    在 Kubernetes 中,可以使用 kubectl taint 命令來(lái)打污點(diǎn),它有以下語(yǔ)法: 其中, node-name 是節(jié)點(diǎn)的名稱(chēng), key 和 value 是用于標(biāo)識(shí)污點(diǎn)的鍵和值, effect 則指定了污點(diǎn)的影響。 例如,要在名為 node-1 的節(jié)點(diǎn)上打一個(gè)污點(diǎn),使它不能被調(diào)度 NoSchedule ,可以使用以下命令: 這將在 node-

    2024年02月12日
    瀏覽(24)
  • k8s節(jié)點(diǎn)pod驅(qū)逐、污點(diǎn)標(biāo)記

    k8s節(jié)點(diǎn)pod驅(qū)逐、污點(diǎn)標(biāo)記

    一、設(shè)置污點(diǎn),禁止pod被調(diào)度到節(jié)點(diǎn)上 kubectl cordon?k8s-node-145 ?設(shè)置完成后,可以看到該節(jié)點(diǎn)附帶了?SchedulingDisabled?的標(biāo)記 二、驅(qū)逐節(jié)點(diǎn)上運(yùn)行的pod到其他節(jié)點(diǎn) kubectl drain --ignore-daemonsets --delete-emptydir-data k8s-node-145 ?顯示被驅(qū)逐的 pod ?三、去除污點(diǎn),允許 pod 調(diào)度到節(jié)點(diǎn)上

    2024年02月11日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包