最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

k8s Pod默認(rèn)調(diào)度策略詳解

 更新時(shí)間:2026年02月03日 09:41:56   作者:alden_ygq  
Kubernetes的Pod默認(rèn)調(diào)度由kube-scheduler負(fù)責(zé),通過(guò)過(guò)濾和打分兩個(gè)階段,將Pod公平、高效地分配到集群節(jié)點(diǎn)上,默認(rèn)調(diào)度策略包括資源檢查、節(jié)點(diǎn)標(biāo)簽、污點(diǎn)容忍、親和性等規(guī)則,默認(rèn)調(diào)度器實(shí)現(xiàn)了負(fù)載均衡和高可用性,但在特定場(chǎng)景下可能需要自定義調(diào)度策略

在 Kubernetes 中,Pod 的默認(rèn)調(diào)度由 kube-scheduler 負(fù)責(zé),其核心目標(biāo)是將 Pod 公平、高效地分配到集群節(jié)點(diǎn)上,同時(shí)滿(mǎn)足 Pod 和節(jié)點(diǎn)的各種約束條件。

默認(rèn)調(diào)度策略是一系列內(nèi)置規(guī)則的組合,無(wú)需用戶(hù)顯式配置即可生效。

一、默認(rèn)調(diào)度流程

kube-scheduler 的調(diào)度過(guò)程分為兩個(gè)主要階段:

  • 過(guò)濾(Filtering):從所有節(jié)點(diǎn)中篩選出滿(mǎn)足 Pod 基本要求的節(jié)點(diǎn)(稱(chēng)為 “可行節(jié)點(diǎn)”)。
  • 打分(Scoring):對(duì)可行節(jié)點(diǎn)進(jìn)行評(píng)分,選擇得分最高的節(jié)點(diǎn)調(diào)度 Pod。

二、核心默認(rèn)策略詳解

1. 過(guò)濾階段(必須滿(mǎn)足的條件)

過(guò)濾階段會(huì)排除不滿(mǎn)足 Pod 需求的節(jié)點(diǎn),核心規(guī)則包括:

  • PodFitsResources檢查節(jié)點(diǎn)是否有足夠的 CPU、內(nèi)存等資源,滿(mǎn)足 Pod 的 resources.requests 配置。例:若 Pod 請(qǐng)求 1 CPU 和 1Gi 內(nèi)存,節(jié)點(diǎn)剩余資源不足則被過(guò)濾。
  • PodFitsHostPorts檢查 Pod 聲明的 hostPort 是否在節(jié)點(diǎn)上未被占用。例:若 Pod 需要 hostPort: 80,節(jié)點(diǎn) 80 端口已被占用則被過(guò)濾。
  • PodFitsHost若 Pod 配置了 spec.nodeName(指定節(jié)點(diǎn)名稱(chēng)),僅保留該節(jié)點(diǎn)。
  • NodeSelectorMatches若 Pod 配置了 spec.nodeSelector(節(jié)點(diǎn)標(biāo)簽選擇器),僅保留匹配標(biāo)簽的節(jié)點(diǎn)。例:nodeSelector: {env: prod} 僅保留有 env=prod 標(biāo)簽的節(jié)點(diǎn)。
  • NoDiskConflict避免 Pod 掛載的本地存儲(chǔ)卷(如 hostPath)在節(jié)點(diǎn)上存在沖突。
  • CheckNodeTaints檢查節(jié)點(diǎn)的污點(diǎn)(Taint)是否被 Pod 的容忍(Toleration)匹配。默認(rèn)規(guī)則:若節(jié)點(diǎn)有污點(diǎn)且 Pod 無(wú)對(duì)應(yīng)容忍,則該節(jié)點(diǎn)被過(guò)濾。
  • CheckNodeAffinity若 Pod 配置了 節(jié)點(diǎn)親和性(NodeAffinity),僅保留滿(mǎn)足親和性規(guī)則的節(jié)點(diǎn)。

2. 打分階段(優(yōu)先選擇的條件)

在過(guò)濾后的可行節(jié)點(diǎn)中,調(diào)度器會(huì)對(duì)節(jié)點(diǎn)打分(0-10 分),得分最高的節(jié)點(diǎn)被選中。

默認(rèn)打分規(guī)則包括:

  • LeastRequestedPriority(默認(rèn)權(quán)重最高)優(yōu)先選擇資源利用率最低的節(jié)點(diǎn)(CPU 和內(nèi)存剩余比例最高)。計(jì)算公式:(1 - (節(jié)點(diǎn)已用CPU/節(jié)點(diǎn)總CPU)) * 5 + (1 - (節(jié)點(diǎn)已用內(nèi)存/節(jié)點(diǎn)總內(nèi)存)) * 5目的:平衡節(jié)點(diǎn)負(fù)載,避免資源過(guò)度集中。
  • BalancedResourceAllocation優(yōu)先選擇 CPU 和內(nèi)存利用率最均衡的節(jié)點(diǎn)(避免某類(lèi)資源過(guò)度使用)。例:CPU 用 30% 且內(nèi)存用 30% 的節(jié)點(diǎn),優(yōu)于 CPU 用 10% 但內(nèi)存用 50% 的節(jié)點(diǎn)。
  • NodePreferAvoidPodsPriority避免將 Pod 調(diào)度到標(biāo)記了 node.kubernetes.io/prefer-avoid-pods 注解的節(jié)點(diǎn)(通常用于避免干擾關(guān)鍵節(jié)點(diǎn))。
  • SelectorSpreadPriority盡量將同一 ServiceStatefulSet 或 ReplicaSet 的 Pod 分散到不同節(jié)點(diǎn)(通過(guò)標(biāo)簽選擇器識(shí)別關(guān)聯(lián) Pod)。目的:提高服務(wù)可用性,避免單點(diǎn)故障。
  • NodeAffinityPriority若 Pod 配置了 偏好性節(jié)點(diǎn)親和性(PreferredDuringSchedulingIgnoredDuringExecution),按規(guī)則對(duì)節(jié)點(diǎn)加分。例:偏好 zone=us-west 標(biāo)簽的節(jié)點(diǎn),匹配的節(jié)點(diǎn)會(huì)獲得額外分?jǐn)?shù)。
  • TaintTolerationPriority對(duì) Pod 容忍節(jié)點(diǎn)污點(diǎn)的情況進(jìn)行打分,容忍的污點(diǎn)越少,得分越高(盡量避免調(diào)度到有污點(diǎn)的節(jié)點(diǎn))。

三、默認(rèn)策略的特點(diǎn)

  1. 無(wú)感知調(diào)度:默認(rèn)策略不依賴(lài)用戶(hù)配置,完全基于集群資源和 Pod 基本需求調(diào)度。
  2. 負(fù)載均衡:通過(guò) LeastRequestedPriority 和 BalancedResourceAllocation 平衡節(jié)點(diǎn)資源使用。
  3. 高可用傾向:通過(guò) SelectorSpreadPriority 分散關(guān)聯(lián) Pod,降低單點(diǎn)風(fēng)險(xiǎn)。
  4. 可擴(kuò)展性:默認(rèn)策略可通過(guò) 調(diào)度配置文件(scheduler-config.yaml) 自定義(如調(diào)整權(quán)重、禁用某些規(guī)則)。

四、驗(yàn)證默認(rèn)調(diào)度行為

可以通過(guò) kubectl describe pod <pod-name> 查看 Pod 的調(diào)度決策細(xì)節(jié):

kubectl describe pod my-pod | grep -A 10 "Events:"

輸出中會(huì)顯示調(diào)度器選擇節(jié)點(diǎn)的原因,例如:

Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  5s    default-scheduler  Successfully assigned default/my-pod to node-1

若要查看更詳細(xì)的打分過(guò)程,可開(kāi)啟 kube-scheduler 的調(diào)試日志(通過(guò) --v=4 啟動(dòng)參數(shù))。

總結(jié)

Kubernetes 的默認(rèn)調(diào)度策略是一套兼顧資源效率、負(fù)載均衡和高可用性的規(guī)則集合,核心邏輯是:

  1. 先過(guò)濾:排除不滿(mǎn)足 Pod 基本需求(資源、標(biāo)簽、污點(diǎn)等)的節(jié)點(diǎn)。
  2. 再打分:優(yōu)先選擇資源充足、負(fù)載均衡且符合偏好的節(jié)點(diǎn)。

如果默認(rèn)策略無(wú)法滿(mǎn)足需求(如特定業(yè)務(wù)需要調(diào)度到 GPU 節(jié)點(diǎn)),可通過(guò) 親和性規(guī)則、調(diào)度器擴(kuò)展 或 自定義調(diào)度器 調(diào)整。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • K8s學(xué)習(xí)之Pod的定義及詳細(xì)資源調(diào)用案例

    K8s學(xué)習(xí)之Pod的定義及詳細(xì)資源調(diào)用案例

    Kubernetes將所有內(nèi)容抽象為資源,通過(guò)操作資源管理集群,核心單元是Pod,通過(guò)控制器管理Pod,資源管理分為命令式對(duì)象管理、命令式對(duì)象配置和聲明式對(duì)象配置,各有適用場(chǎng)景,需要的朋友可以參考下
    2024-09-09
  • 詳解k8s?NetworkPolicy?網(wǎng)絡(luò)策略是怎么樣的

    詳解k8s?NetworkPolicy?網(wǎng)絡(luò)策略是怎么樣的

    這篇文章主要為大家介紹了k8s?NetworkPolicy?網(wǎng)絡(luò)策略是怎么樣的深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • k8s 中的 service 如何找到綁定的 Pod 及實(shí)現(xiàn) Pod 負(fù)載均衡的方法

    k8s 中的 service 如何找到綁定的 Pod 及實(shí)現(xiàn) 

    service 是一組具有相同 label pod 集合的抽象,集群內(nèi)外的各個(gè)服務(wù)可以通過(guò) service 進(jìn)行互相通信,這篇文章主要介紹了k8s 中的 service 如何找到綁定的 Pod 以及如何實(shí)現(xiàn) Pod 負(fù)載均衡,需要的朋友可以參考下
    2022-10-10
  • k8s安裝calico時(shí)如何選擇網(wǎng)卡問(wèn)題

    k8s安裝calico時(shí)如何選擇網(wǎng)卡問(wèn)題

    這篇文章主要介紹了k8s安裝calico時(shí)如何選擇網(wǎng)卡問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • IPVS下CoreDNS滾動(dòng)更新解析失敗原理探究

    IPVS下CoreDNS滾動(dòng)更新解析失敗原理探究

    這篇文章主要為大家介紹了IPVS下CoreDNS滾動(dòng)更新解析失敗原理探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • K8S單節(jié)點(diǎn)部署及集群部署過(guò)程

    K8S單節(jié)點(diǎn)部署及集群部署過(guò)程

    這篇文章主要介紹了K8S單節(jié)點(diǎn)部署及集群部署過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • k8s中kubeconfig的配置以及使用詳解

    k8s中kubeconfig的配置以及使用詳解

    每當(dāng)與集群交互的時(shí)候少不了的是身份認(rèn)證,使用kubeconfig(即證書(shū))和token兩種認(rèn)證方式是最簡(jiǎn)單也最通用的認(rèn)證方式,下面這篇文章主要給大家介紹了關(guān)于k8s中kubeconfig的配置以及使用的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • k8s1.20二進(jìn)制安裝實(shí)踐

    k8s1.20二進(jìn)制安裝實(shí)踐

    這篇文章詳細(xì)介紹了如何在CentOS?7.9上部署Kubernetes?1.20.0集群,包括系統(tǒng)環(huán)境配置、基本組件安裝、證書(shū)生成、Kubernetes組件配置、高可用配置、Node節(jié)點(diǎn)配置、安裝Calico、CoreDNS、MetricsServer以及集群驗(yàn)證等步驟
    2026-03-03
  • StatefulSet的每個(gè)Pod單獨(dú)創(chuàng)建Service實(shí)踐

    StatefulSet的每個(gè)Pod單獨(dú)創(chuàng)建Service實(shí)踐

    本文介紹了如何為StatefulSet的每個(gè)Pod創(chuàng)建獨(dú)立的Service,并提供了一個(gè)示例腳本,以批量生成Service定義,通過(guò)這種方式,可以實(shí)現(xiàn)從集群外部訪問(wèn)每個(gè)Pod的功能,并且可以根據(jù)需要配置不同的Service類(lèi)型(如NodePort、LoadBalancer、ClusterIP+Ingress等)
    2026-01-01
  • 一文詳解基于Kubescape進(jìn)行Kubernetes安全加固

    一文詳解基于Kubescape進(jìn)行Kubernetes安全加固

    這篇文章主要為大家介紹了基于Kubescape進(jìn)行Kubernetes安全加固詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02

最新評(píng)論

涞源县| 台南县| 合肥市| 安庆市| 张家口市| 昌宁县| 胶州市| 南投县| 丰顺县| 清新县| 福鼎市| 甘肃省| 赞皇县| 北宁市| 沂南县| 太康县| 禹城市| 云霄县| 大丰市| 拜泉县| 临海市| 九台市| 怀柔区| 肃南| 富蕴县| 澳门| 余姚市| 宁晋县| 广汉市| 建湖县| 洛隆县| 泰和县| 都匀市| 新田县| 辽阳市| 福鼎市| 安陆市| 涞水县| 常宁市| 固原市| 衡东县|