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

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

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

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

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

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

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

  • 過濾(Filtering):從所有節(jié)點中篩選出滿足 Pod 基本要求的節(jié)點(稱為 “可行節(jié)點”)。
  • 打分(Scoring):對可行節(jié)點進行評分,選擇得分最高的節(jié)點調(diào)度 Pod。

二、核心默認策略詳解

1. 過濾階段(必須滿足的條件)

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

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

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

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

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

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

三、默認策略的特點

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

四、驗證默認調(diào)度行為

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

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

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

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

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

總結(jié)

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    IPVS下CoreDNS滾動更新解析失敗原理探究

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

    K8S單節(jié)點部署及集群部署過程

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

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

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

    k8s1.20二進制安裝實踐

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

    StatefulSet的每個Pod單獨創(chuàng)建Service實踐

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

    一文詳解基于Kubescape進行Kubernetes安全加固

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

最新評論

建平县| 东安县| 闵行区| 万安县| 二连浩特市| 芜湖市| 获嘉县| 长汀县| 庐江县| 定日县| 琼结县| 普定县| 永丰县| 怀仁县| 宝山区| 莱阳市| 田林县| 丽水市| 南岸区| 宽城| 澳门| 肥西县| 江源县| 桂东县| 河间市| 石泉县| 玉田县| 原阳县| 龙泉市| 沂源县| 会昌县| 阜阳市| 涞水县| 崇义县| 诸城市| 堆龙德庆县| 花垣县| 恩平市| 都昌县| 张掖市| 时尚|