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

k8s資源調(diào)度

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

默認(rèn)的情況下,一個(gè)pod在哪個(gè)node節(jié)點(diǎn)上運(yùn)行,是由scheduler組件采取對(duì)應(yīng)的算法計(jì)算出來(lái)的,這個(gè)過(guò)程是不受人工控制的,在實(shí)際的使用過(guò)程中,這不能夠滿(mǎn)足客觀的場(chǎng)景,針對(duì)這樣的情況,k8s 提供了四大類(lèi)調(diào)度方式:

  1. 自動(dòng)調(diào)度: 運(yùn)行在哪個(gè)node節(jié)點(diǎn)上完全由scheduler 經(jīng)過(guò)一些里的算法計(jì)算出來(lái)
  2. 定向調(diào)度:NodeName、NodeSelector
  3. 親和性調(diào)度:NodeAffinity、PodAffinity、PodAntiAffinity
  4. 污點(diǎn)(容忍)調(diào)度:taints、Toleration
  • 定向調(diào)度

定向調(diào)度,指的是利用在 Pod 上聲明的 nodeName 或 nodeSelector ,以此將 Pod 調(diào)度到期望的 Node 節(jié)點(diǎn)上。這里的調(diào)度是強(qiáng)制的,這就意味著即使要調(diào)度的目標(biāo) Node 不存在,也會(huì)向上面進(jìn)行調(diào)度,只不過(guò) Pod 運(yùn)行失敗而已。

NodeName方式調(diào)度

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: default
  labels:
    app: nginx
spec:
  nodeName: k8s-node1 # 指定調(diào)度到k8s-node1節(jié)點(diǎn)上
  containers:
  - name: nginx
    image: nginx:1.20.2
    resources:
      limits:
        cpu: 200m
        memory: 500Mi
      requests:
        cpu: 100m
        memory: 200Mi
    ports:
    - containerPort:  80
      name:  http
    volumeMounts:
    - name: localtime
      mountPath: /etc/localtime
  volumes:
    - name: localtime
      hostPath:
        path: /usr/share/zoneinfo/Asia/Shanghai
  restartPolicy: Always

NodeSelector方式調(diào)度

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: default
  labels:
    app: nginx
spec:
  nodeSelector:
    nodeevn: pro # 指定調(diào)度到 nodeevn = pro 標(biāo)簽的 Node 節(jié)點(diǎn)上
  containers:
  - name: nginx
    image: nginx:1.20.2
    resources:
      limits:
        cpu: 200m
        memory: 500Mi
      requests:
        cpu: 100m
        memory: 200Mi
    ports:
    - containerPort: 80
      name:  http
    volumeMounts:
    - name: localtime
      mountPath: /etc/localtime
  volumes:
    - name: localtime
      hostPath:
        path: /usr/share/zoneinfo/Asia/Shanghai
  restartPolicy: Always
  • 親和性調(diào)度

雖然定向調(diào)度的兩種方式,使用起來(lái)非常方便,但是也有一定的問(wèn)題,那就是如果沒(méi)有滿(mǎn)足條件的 Node,那么 Pod 將不會(huì)被運(yùn)行,即使在集群中還有可用的 Node 列表也不行,這就限制了它的使用場(chǎng)景?;谏厦娴膯?wèn)題,Kubernetes 還提供了一種親和性調(diào)度(Affinity)。它在 nodeSelector 的基礎(chǔ)之上進(jìn)行了擴(kuò)展,可以通過(guò)配置的形式,實(shí)現(xiàn)優(yōu)先選擇滿(mǎn)足條件的 Node 進(jìn)行調(diào)度,如果沒(méi)有,也可以調(diào)度到不滿(mǎn)足條件的節(jié)點(diǎn)上,使得調(diào)度更加靈活。

● Affinity 主要分為三類(lèi):
○ nodeAffinity(node親和性):以 Node 為目標(biāo),解決 Pod可 以調(diào)度到那些 Node 的問(wèn)題。
○ podAffinity(pod親和性):以 Pod 為目標(biāo),解決 Pod 可以和那些已存在的 Pod 部署在同一個(gè)拓?fù)溆蛑械膯?wèn)題。
○ podAntiAffinity(pod反親和性):以 Pod 為目標(biāo),解決 Pod 不能和那些已經(jīng)存在的 Pod 部署在同一拓?fù)溆蛑械膯?wèn)題。

關(guān)于親和性和反親和性的使用場(chǎng)景的說(shuō)明:
● 親和性:如果兩個(gè)應(yīng)用頻繁交互,那么就有必要利用親和性讓兩個(gè)應(yīng)用盡可能的靠近,這樣可以較少因網(wǎng)絡(luò)通信而帶來(lái)的性能損耗。
● 反親和性:當(dāng)應(yīng)用采用多副本部署的時(shí)候,那么就有必要利用反親和性讓各個(gè)應(yīng)用實(shí)例打散分布在各個(gè) Node 上,這樣可以提高服務(wù)的高可用性。

pod.spec.affinity.nodeAffinity
  requiredDuringSchedulingIgnoredDuringExecution  # Node節(jié)點(diǎn)必須滿(mǎn)足指定的所有規(guī)則才可以,硬性過(guò)濾
    nodeSelectorTerms  # 節(jié)點(diǎn)選擇列表
      matchFields   # 按節(jié)點(diǎn)字段列出的節(jié)點(diǎn)選擇器要求列表  
      matchExpressions   # 按節(jié)點(diǎn)標(biāo)簽列出的節(jié)點(diǎn)選擇器要求列表(推薦)
        key    # 鍵
        values # 值
        operator # 關(guān)系符 支持Exists, DoesNotExist, In, NotIn, Gt, Lt
  preferredDuringSchedulingIgnoredDuringExecution # 優(yōu)先調(diào)度到滿(mǎn)足指定的規(guī)則的Node,軟性評(píng)分 (傾向)   
    preference   # 一個(gè)節(jié)點(diǎn)選擇器項(xiàng),與相應(yīng)的權(quán)重相關(guān)聯(lián)
      matchFields # 按節(jié)點(diǎn)字段列出的節(jié)點(diǎn)選擇器要求列表
      matchExpressions   # 按節(jié)點(diǎn)標(biāo)簽列出的節(jié)點(diǎn)選擇器要求列表(推薦)
        key # 鍵
        values # 值
        operator # 關(guān)系符 支持In, NotIn, Exists, DoesNotExist, Gt, Lt  
    weight # 傾向權(quán)重,在范圍1-100。

● podAffinity 主要實(shí)現(xiàn)以運(yùn)行的 Pod 為參照,實(shí)現(xiàn)讓新創(chuàng)建的 Pod 和參照的 Pod 在一個(gè)區(qū)域的功能。
● podAntiAffinity 主要實(shí)現(xiàn)以運(yùn)行的 Pod 為參照,讓新創(chuàng)建的 Pod 和參照的 Pod 不在一個(gè)區(qū)域的功能。
● PodAffinity 的可選配置項(xiàng):

pod.spec.affinity.podAffinity
  requiredDuringSchedulingIgnoredDuringExecution  硬限制
    namespaces 指定參照pod的namespace
    topologyKey 指定調(diào)度作用域
    labelSelector 標(biāo)簽選擇器
      matchExpressions  按節(jié)點(diǎn)標(biāo)簽列出的節(jié)點(diǎn)選擇器要求列表(推薦)
        key    鍵
        values 值
        operator 關(guān)系符 支持In, NotIn, Exists, DoesNotExist.
      matchLabels    指多個(gè)matchExpressions映射的內(nèi)容  
  preferredDuringSchedulingIgnoredDuringExecution 軟限制    
    podAffinityTerm  選項(xiàng)
      namespaces
      topologyKey
      labelSelector
         matchExpressions 
            key    鍵  
            values 值  
            operator
         matchLabels 
    weight 傾向權(quán)重,在范圍1-1
  • 污點(diǎn)和容忍

● 前面的調(diào)度方式都是站在 Pod 的角度上,通過(guò)在 Pod 上添加屬性,來(lái)確定 Pod 是否要調(diào)度到指定的 Node 上,其實(shí)我們也可以站在 Node 的角度上,通過(guò)在 Node 上添加污點(diǎn)屬性,來(lái)決定是否運(yùn)行 Pod 調(diào)度過(guò)來(lái)。
● Node 被設(shè)置了污點(diǎn)之后就和 Pod 之間存在了一種相斥的關(guān)系,進(jìn)而拒絕 Pod 調(diào)度進(jìn)來(lái),甚至可以將已經(jīng)存在的 Pod 驅(qū)逐出去。

污點(diǎn)的格式為:

key=value:effect

key 和 value 是污點(diǎn)的標(biāo)簽及對(duì)應(yīng)的值

effect 描述污點(diǎn)的作用

● effect 支持如下的三個(gè)選項(xiàng):
○ PreferNoSchedule:Kubernetes 將盡量避免把 Pod 調(diào)度到具有該污點(diǎn)的 Node 上,除非沒(méi)有其他節(jié)點(diǎn)可以調(diào)度;換言之,盡量不要來(lái),除非沒(méi)辦法。
○ NoSchedule:Kubernets 將不會(huì)把 Pod 調(diào)度到具有該污點(diǎn)的 Node 上,但是不會(huì)影響當(dāng)前 Node 上已經(jīng)存在的 Pod ;換言之,新的不要來(lái),在這的就不要?jiǎng)印?br> ○ NoExecute:Kubernets 將不會(huì)將 Pod 調(diào)度到具有該污點(diǎn)的 Node 上,同時(shí)會(huì)將 Node 上已經(jīng)存在的 Pod 驅(qū)逐;換言之,新的不要來(lái),這這里的趕緊走。

  1. 新增污點(diǎn)

kubectl taint node xxx key=value:effect

  1. 去除污點(diǎn)

kubectl taint node xxx key:effect-

  1. 去除所有污點(diǎn)

kubectl taint node xxx key-

  1. 查看污點(diǎn)

kubectl describe node xxx | grep -i taints


容忍:

● 上面介紹了污點(diǎn)的作用,我們可以在 Node上 添加污點(diǎn)用來(lái)拒絕 Pod 調(diào)度上來(lái),但是如果就是想讓一個(gè) Pod 調(diào)度到一個(gè)有污點(diǎn)的 Node 上去,這時(shí)候應(yīng)該怎么做?這就需要使用到容忍。

污點(diǎn)就是拒絕,容忍就是忽略,Node 通過(guò)污點(diǎn)拒絕 Pod 調(diào)度上去,Pod 通過(guò)容忍忽略拒絕。

kubectl explain pod.spec.tolerations

FIELDS:
key # 對(duì)應(yīng)著要容忍的污點(diǎn)的鍵,空意味著匹配所有的鍵
value # 對(duì)應(yīng)著要容忍的污點(diǎn)的值
operator # key-value的運(yùn)算符,支持Equal和Exists(默認(rèn))
effect # 對(duì)應(yīng)污點(diǎn)的effect,空意味著匹配所有影響
tolerationSeconds # 容忍時(shí)間, 當(dāng)effect為NoExecute時(shí)生效,表示pod在Node上的停留時(shí)間

● 污點(diǎn)和容忍的匹配:
○ 當(dāng)滿(mǎn)足如下條件的時(shí)候,Kubernetes 認(rèn)為污點(diǎn)和容忍匹配:
■ 鍵(key)相同。
■ 效果(effect)相同。
■ 污點(diǎn)的 operator 為:
● Exists ,此時(shí)污點(diǎn)中不應(yīng)該指定 value 。
● Equal,此時(shí)容忍的 value 應(yīng)該和污點(diǎn)的 value 相同。
○ 如果不指定 operator ,默認(rèn)為 Equal 。
● 特殊情況:
○ 容忍中沒(méi)有定義 key ,但是定義了 operator 為 Exists ,Kubernetes 則認(rèn)為此容忍匹配所有的污點(diǎn),如:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-718554.html

tolerations:
- operator: Exists
# 最終,所有有污點(diǎn)的機(jī)器我們都能容忍,Pod 都可以調(diào)度。
  tolerations: # 容忍
    - key: "tag" # 要容忍的污點(diǎn)的key
      operator: Exists # 操作符
# 最終,有這個(gè)污點(diǎn)的機(jī)器我們可以容忍,Pod 都可以調(diào)度。

到了這里,關(guān)于k8s資源調(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)文章

  • yum部署kubernetes(k8s)集群、k8s常用資源管理

    目錄 一、環(huán)境搭建 1、準(zhǔn)備環(huán)境 1)計(jì)算機(jī)說(shuō)明,建議系統(tǒng)版本7.4或者7.6 2)修改所有主機(jī)的計(jì)算機(jī)名設(shè)置host文件 ?2、安裝master節(jié)點(diǎn) 1)安裝etcd配置etcd 2)安裝k8s-master節(jié)點(diǎn) 3)配置apiserver 4)配置controller和scheduler 5)啟動(dòng)k8s服務(wù) 3、安裝k8s-master上的node 1)安裝node 2)配置kube

    2024年02月13日
    瀏覽(35)
  • kubernetes/k8s配置資源管理

    kubernetes/k8s配置資源管理

    配置資源管理 Secret Configmap*.1.2加入新特征 1.18 Secret:保存密碼,token,敏感的k8s資源 這類(lèi)數(shù)據(jù)可以存放在鏡像當(dāng)中,但是防止secret可以更方便的控制,減少暴漏風(fēng)險(xiǎn)。 保存加密的信息 Secret的類(lèi)型: docker-registry:存儲(chǔ)docker倉(cāng)庫(kù)認(rèn)證信息,以及docker組件的認(rèn)證信息(私有的) generic:是

    2024年01月17日
    瀏覽(24)
  • (kubernetes)k8s常用資源管理

    (kubernetes)k8s常用資源管理

    目錄 k8s常用資源管理 1、創(chuàng)建一個(gè)pod 1)創(chuàng)建yuml文件 2)創(chuàng)建容器 3)查看所有pod創(chuàng)建運(yùn)行狀態(tài) 4)查看指定pod資源 5)查看pod運(yùn)行的詳細(xì)信息 6)驗(yàn)證運(yùn)行的pod 2、pod管理 1)刪除pod 2)查看刪除pod無(wú)法找到 3)創(chuàng)建pod 4)發(fā)現(xiàn)最先創(chuàng)建的pod運(yùn)行在k8s-master節(jié)點(diǎn)上,下載鏡像速度太

    2024年02月13日
    瀏覽(52)
  • kubernetes(k8s) pod(資源限制、基礎(chǔ)概念)

    kubernetes(k8s) pod(資源限制、基礎(chǔ)概念)

    目錄 ?一、資源限制 1、概念 1.2、Pod和容器的資源請(qǐng)求和限制 1.3、CPU資源單位 1.4、內(nèi)存資源單位 1.5、CPU和內(nèi)存的Requests和Limits的特點(diǎn) 1.6、案例 二、pod 的兩種使用方式 三、pod 資源共享 四、底層容器Pause 1、pause 共享資源 1.1、網(wǎng)絡(luò) 1.2、存儲(chǔ) 1.3、小結(jié) 2、Pause主要功能 3、Pod

    2024年02月05日
    瀏覽(103)
  • Kubernetes(k8s)核心資源解析:Pod詳解

    Kubernetes(k8s)核心資源解析:Pod詳解

    ??The Begin??點(diǎn)點(diǎn)關(guān)注,收藏不迷路?? Pod是Kubernetes中最小的調(diào)度單元,它可以包含一個(gè)或多個(gè)容器。Pod中的所有容器共享網(wǎng)絡(luò)和存儲(chǔ)卷,它們一起運(yùn)行在同一個(gè)節(jié)點(diǎn)上。Pod提供了一種抽象層,使得容器可以作為一個(gè)邏輯單元來(lái)管理。 Pod中的容器共享IP地址、端口空間和存儲(chǔ)

    2024年04月11日
    瀏覽(102)
  • 云原生Kubernetes:K8S配置資源管理

    云原生Kubernetes:K8S配置資源管理

    目錄 一、理論 1.Secret 2.Secret創(chuàng)建 3.Secret使用 4.Configmap 5.Configmap創(chuàng)建 6.Configmap使用 二、實(shí)驗(yàn) 1.Secret創(chuàng)建 2.Secret使用 3.Configmap創(chuàng)建 4.Configmap使用 三、問(wèn)題 1.變量引用生成資源報(bào)錯(cuò) 2.查看pod日志失敗 3.創(chuàng)建configmap報(bào)錯(cuò) 4.YAML創(chuàng)建configmap報(bào)錯(cuò) 5. 生成資源報(bào)錯(cuò) 6.文件掛載pod報(bào)錯(cuò)Error 四

    2024年02月07日
    瀏覽(25)
  • Kubernetes技術(shù)--k8s核心技術(shù)yaml資源編排

    (1).引入 ? ? ? ?我們可以使用kubectl實(shí)現(xiàn)單行指令的操作,但是這樣做的壞處是不復(fù)用,所以為了更好的實(shí)現(xiàn)對(duì)一系列資源的編排工作。kuberntes中使用一種叫做 資源清單文件(yaml)來(lái)實(shí)現(xiàn)對(duì)資源管理和資源對(duì)象編排部署 。 (2).概述 ? ? yaml是一 種標(biāo)記語(yǔ)言 。為了強(qiáng)調(diào)這種語(yǔ)言以

    2024年02月10日
    瀏覽(26)
  • Kubernetes/k8s之HPA,命名空間資源限制

    Kubernetes/k8s之HPA,命名空間資源限制

    Horizontal Pod Autoscaling:po的水平自動(dòng)伸縮 這是k8s自帶的模塊 pod占用cpu比例達(dá)到一定的閥值,會(huì)觸發(fā)伸縮機(jī)制。 根據(jù)cpu的閥值觸發(fā)伸縮機(jī)制 replication controller 副本控制器 控制pod的副本數(shù) deployment controller 節(jié)點(diǎn)控制器 部署pod hpa控制副本的數(shù)量,以及如何控制部署pod 1、hpa基于kub

    2024年01月24日
    瀏覽(30)
  • 【K8S】Kubernetes 中有狀態(tài)的資源對(duì)象——StatefulSet

    現(xiàn)在基本上很多服務(wù)中的應(yīng)用都是有狀態(tài)的,比如MySQL數(shù)據(jù)庫(kù)、Redis等,因?yàn)槠渲械臄?shù)據(jù)在不斷地變化,所以這些應(yīng)用每個(gè)時(shí)刻都處于一個(gè)不同的狀態(tài)?;蛘咭粋€(gè)系統(tǒng)中存在多個(gè)不同的應(yīng)用,這些應(yīng)用存在一定的依賴(lài)關(guān)系。例如一個(gè)博客服務(wù),該服務(wù)中包含了Redis緩存和MySQL數(shù)

    2024年02月04日
    瀏覽(26)
  • kubernetes(k8s)為容器和 Pod 分配內(nèi)存資源

    kubernetes(k8s)為容器和 Pod 分配內(nèi)存資源

    展示如何將內(nèi)存請(qǐng)求(request)和內(nèi)存限制(limit)分配給一個(gè)容器。 我們保障容器擁有它請(qǐng)求數(shù)量的內(nèi)存,但不允許使用超過(guò)限制數(shù)量的內(nèi)存。 創(chuàng)建新的命名空間 編輯yaml文件 配置文件的 args 部分提供了容器啟動(dòng)時(shí)的參數(shù)。 “–vm-bytes”, “150M” 參數(shù)告知容器嘗試分配 15

    2024年02月15日
    瀏覽(109)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包