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

k8s中topologyKey的作用及說明

 更新時(shí)間:2025年08月12日 15:23:33   作者:容器云  
topologyKey定義拓?fù)溆?用于Pod親和/反親和性規(guī)則,調(diào)度器根據(jù)其分組節(jié)點(diǎn),當(dāng)前配置僅強(qiáng)制節(jié)點(diǎn)標(biāo)簽匹配,未限制副本數(shù)量,建議補(bǔ)充podAntiAffinity實(shí)現(xiàn)隔離
spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: rcs-prod
                    operator: In
                    values:
                      - 'true'
        podAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector: {}
              topologyKey: rcs-prod
        podAntiAffinity: {}

topologyKey的作用

一、topologyKey的核心作用

topologyKey 通過 節(jié)點(diǎn)的標(biāo)簽(Label) 劃分邏輯上的“拓?fù)溆?rdquo;,用于實(shí)現(xiàn):

1.Pod 親和性(PodAffinity)

將 Pod 調(diào)度到與目標(biāo) Pod 相同的拓?fù)溆?/strong>(例如同一機(jī)架、可用區(qū)或自定義分組)。

2.Pod 反親和性(PodAntiAffinity)

阻止 Pod 調(diào)度到與目標(biāo) Pod 相同的拓?fù)溆?/strong>(例如避免單節(jié)點(diǎn)或單可用區(qū)部署)。

二、topologyKey的值來源

topologyKey 的值是 節(jié)點(diǎn)標(biāo)簽的鍵(Key),可以是:

Kubernetes 內(nèi)置標(biāo)簽

  • kubernetes.io/hostname(節(jié)點(diǎn)主機(jī)名,粒度最細(xì))
  • topology.kubernetes.io/zone(可用區(qū),如 AWS 的 us-east-1a
  • topology.kubernetes.io/region(地域,如 us-east-1

topologyKey 是 Pod 親和性/反親和性規(guī)則中用于定義"拓?fù)溆?quot;的節(jié)點(diǎn)標(biāo)簽鍵。它決定了如何將節(jié)點(diǎn)分組以實(shí)現(xiàn) Pod 的共置或隔離:

  • 當(dāng)兩個(gè) Pod 在具有相同 topologyKey 值的節(jié)點(diǎn)上時(shí),它們被視為在同一拓?fù)溆蛑?/li>
  • 對(duì)于 podAffinity,Kubernetes 會(huì)嘗試將 Pod 調(diào)度到與指定 Pod 在同一拓?fù)溆虻墓?jié)點(diǎn)上
  • 對(duì)于 podAntiAffinity,Kubernetes 會(huì)確保 Pod 不會(huì)被調(diào)度到與指定 Pod 在同一拓?fù)溆虻墓?jié)點(diǎn)上

調(diào)度器如何工作

當(dāng)調(diào)度器決定pod調(diào)度到哪里時(shí),它首先檢查pod的podAffinity配置,找 出那些符合標(biāo)簽選擇器的pod, 接著查詢這些pod運(yùn)行在哪些節(jié)點(diǎn)上。

特別的是, 它會(huì)尋找標(biāo)簽?zāi)芷ヅ鋚odAffinity配置中topologyKey的節(jié)點(diǎn)。接著,它會(huì)優(yōu) 先選擇所有的標(biāo)簽匹配pod的值的節(jié)點(diǎn)。

配置詳細(xì)解釋

nodeAffinity 部分

nodeAffinity:
  requiredDuringSchedulingIgnoredDuringExecution:
    nodeSelectorTerms:
      - matchExpressions:
          - key: rcs-prod
            operator: In
            values:
              - 'true'
  • 含義:Pod 必須被調(diào)度到帶有標(biāo)簽 rcs-prod=true 的節(jié)點(diǎn)上
  • requiredDuringSchedulingIgnoredDuringExecution 表示這是硬性要求,調(diào)度時(shí)必須滿足

podAffinity 部分

podAffinity:
  requiredDuringSchedulingIgnoredDuringExecution:
    - labelSelector: {}
      topologyKey: rcs-prod

含義:Pod 必須與集群中所有其他 Pod 部署在相同拓?fù)溆颍淳哂邢嗤?nbsp;rcs-prod 標(biāo)簽值的節(jié)點(diǎn)上)

  • labelSelector: {} 匹配所有 Pod,因?yàn)闆]有指定具體標(biāo)簽
  • topologyKey: rcs-prod 表示使用節(jié)點(diǎn)的 rcs-prod 標(biāo)簽作為拓?fù)溆?/li>

podAntiAffinity 部分

podAntiAffinity: {}

這是一個(gè)空配置,表示沒有 Pod 反親和性規(guī)則

綜合理解

這個(gè)配置的整體效果是:

  • Pod 只能被調(diào)度到帶有 rcs-prod=true 標(biāo)簽的節(jié)點(diǎn)上
  • Pod 必須與所有其他 Pod 部署在相同拓?fù)溆颍此?Pod 都在具有相同 rcs-prod 標(biāo)簽值的節(jié)點(diǎn)上)

注意:這里的 podAffinity 配置有些特殊,因?yàn)樗褂昧丝諛?biāo)簽選擇器匹配所有 Pod,這可能導(dǎo)致調(diào)度困難,除非集群中所有節(jié)點(diǎn)都有相同的 rcs-prod 標(biāo)簽值。

當(dāng)前的設(shè)置并不能避免相同的 Pod 調(diào)度到同一個(gè)節(jié)點(diǎn)上。以下是詳細(xì)分析:

為什么當(dāng)前配置不能防止相同 Pod 調(diào)度到同一節(jié)點(diǎn)?

1.缺少 podAntiAffinity 規(guī)則

  • 您當(dāng)前的 podAntiAffinity: {} 是空的,沒有定義任何反親和性規(guī)則。
  • 要阻止相同 Pod 調(diào)度到同一節(jié)點(diǎn),必須明確配置反親和性。

2.podAffinity 的作用是共置(co-location),而非隔離

  • 當(dāng)前的 podAffinity 只是強(qiáng)制 Pod 必須調(diào)度到具有相同 rcs-prod 標(biāo)簽值的節(jié)點(diǎn),但不會(huì)阻止相同 Pod 部署到同一節(jié)點(diǎn)。

3.topologyKey 在 podAffinity 中的用途

  • 它僅定義“拓?fù)溆?rdquo;(如節(jié)點(diǎn)、機(jī)架、區(qū)域等),而不是 Pod 之間的排斥規(guī)則。
  • 當(dāng)前的 topologyKey: rcs-prod 僅確保 Pod 調(diào)度到具有相同 rcs-prod 標(biāo)簽值的節(jié)點(diǎn),但不會(huì)限制同一節(jié)點(diǎn)上的副本數(shù)量。

如何修改配置以避免相同 Pod 調(diào)度到同一節(jié)點(diǎn)?

如果希望 相同的 Pod 不被調(diào)度到同一個(gè)節(jié)點(diǎn)(例如避免單點(diǎn)故障),需要配置 podAntiAffinity,例如:

方案 1:硬性反親和性(不允許同一節(jié)點(diǎn)調(diào)度)

affinity:
  podAntiAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:  # 硬性要求
      - labelSelector:
          matchLabels:
            app: your-pod-label  # 替換為您的 Pod 標(biāo)簽
        topologyKey: kubernetes.io/hostname  # 以節(jié)點(diǎn)主機(jī)名為拓?fù)溆?/pre>

方案 2:軟性反親和性(盡量不調(diào)度到同一節(jié)點(diǎn))

affinity:
  podAntiAffinity:
    preferredDuringSchedulingIgnoredDuringExecution:  # 軟性偏好
      - weight: 100
        podAffinityTerm:
          labelSelector:
            matchLabels:
              app: your-pod-label
          topologyKey: kubernetes.io/hostname

關(guān)鍵點(diǎn)說明

1.topologyKey 的選擇

  • 如果使用 kubernetes.io/hostname,則反親和性針對(duì)單個(gè)節(jié)點(diǎn)(最嚴(yán)格)。
  • 如果使用其他標(biāo)簽(如 zone),則反親和性會(huì)作用于更廣的拓?fù)溆颍ㄈ缯麄€(gè)可用區(qū))。

2.labelSelector 必須匹配 Pod 標(biāo)簽

  • 您需要確保 matchLabels 中的標(biāo)簽與您的 Pod 模板中定義的標(biāo)簽一致,例如:
metadata:
  labels:
    app: your-pod-label  # 需與反親和性規(guī)則匹配

3.nodeAffinity 和 podAntiAffinity 可以共存

  • 您的原有 nodeAffinity 可以保留,只需補(bǔ)充 podAntiAffinity 即可。

最終建議配置

affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
        - matchExpressions:
            - key: rcs-prod
              operator: In
              values:
                - "true"
  podAntiAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchLabels:
            app: your-pod-label  # 替換為您的實(shí)際 Pod 標(biāo)簽
        topologyKey: kubernetes.io/hostname  # 確保不調(diào)度到同一節(jié)點(diǎn)

這樣既能滿足節(jié)點(diǎn)親和性要求,又能避免相同 Pod 調(diào)度到同一節(jié)點(diǎn)。

總結(jié)

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

相關(guān)文章

  • 解決k8s namespace 一直處于 Terminating 狀態(tài)的問題

    解決k8s namespace 一直處于 Terminating 狀態(tài)的問題

    這篇文章主要介紹了k8s namespace 一直處于 Terminating 狀態(tài)的解決方法,以下的 tool 為 Terminating 狀態(tài)的 namespace,下面相關(guān)的一些操作記得將 tool 修改成自己的 namespace 名稱,需要的朋友可以參考下
    2022-10-10
  • Kubernetes調(diào)度機(jī)制與策略實(shí)驗(yàn)詳解

    Kubernetes調(diào)度機(jī)制與策略實(shí)驗(yàn)詳解

    本文通過實(shí)際操作,詳細(xì)介紹了Kubernetes調(diào)度機(jī)制的核心原理和常用調(diào)度策略的配置方法,包括節(jié)點(diǎn)選擇、親和性與反親和性、污點(diǎn)與容忍等,實(shí)驗(yàn)環(huán)境為Kubernetes集群,并通過一系列步驟驗(yàn)證了這些調(diào)度策略的實(shí)際應(yīng)用
    2025-12-12
  • K8s基本單元Pod解讀

    K8s基本單元Pod解讀

    Kubernetes中Pod是調(diào)度單元,包含多個(gè)容器及Pause容器,提供共享網(wǎng)絡(luò)、存儲(chǔ)等資源,狀態(tài)分為Pending、Running、Failed等,支持存活、就緒、啟動(dòng)探針檢測(cè)容器健康
    2025-08-08
  • k8s證書過期時(shí)間掃描方式

    k8s證書過期時(shí)間掃描方式

    該文章介紹了多種檢查Kubernetes證書過期時(shí)間的方法,包括使用openssl命令、kubeadm工具、Shell腳本、Kubernetes API等,文章還提到了一些第三方工具,如cert-manager、kube-cert-manager和PrometheusSSLExporter,以及關(guān)鍵證書的位置
    2025-10-10
  • Kubernetes從私有鏡像倉庫拉取容器鏡像時(shí)的身份驗(yàn)證方式

    Kubernetes從私有鏡像倉庫拉取容器鏡像時(shí)的身份驗(yàn)證方式

    Kubernetes從私有鏡像倉庫拉取容器鏡像時(shí),需要使用私有倉庫的憑證進(jìn)行身份驗(yàn)證,這些憑證可以存儲(chǔ)在`private-registry-auth`這個(gè)Secret中,然后在Pod或ServiceAccount中指定使用該Secret,這樣可以確保Pod在拉取鏡像時(shí)能夠正確進(jìn)行身份驗(yàn)證
    2026-01-01
  • k8s Job 執(zhí)行一次性以及批處理任務(wù)使用場(chǎng)景案例

    k8s Job 執(zhí)行一次性以及批處理任務(wù)使用場(chǎng)景案例

    這篇文章主要為大家介紹了k8s Job 執(zhí)行一次性以及批處理任務(wù)使用場(chǎng)景案例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • k8s常用命令大全(最新推薦)

    k8s常用命令大全(最新推薦)

    這篇文章主要介紹了k8s常用命令大全,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 阿里云ECS排查CPU數(shù)據(jù)分析

    阿里云ECS排查CPU數(shù)據(jù)分析

    這篇文章主要介紹了阿里云ECS排查CPU數(shù)據(jù)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Kubernetes應(yīng)用配置管理創(chuàng)建使用詳解

    Kubernetes應(yīng)用配置管理創(chuàng)建使用詳解

    這篇文章主要為大家介紹了Kubernetes應(yīng)用配置管理創(chuàng)建使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • ES業(yè)務(wù)數(shù)據(jù)遷移遇到的精度問題BUG

    ES業(yè)務(wù)數(shù)據(jù)遷移遇到的精度問題BUG

    這篇文章主要為大家介紹了ES業(yè)務(wù)數(shù)據(jù)遷移遇到的BUG精度問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06

最新評(píng)論

巨野县| 上林县| 土默特右旗| 高青县| 兴仁县| 青阳县| 保山市| 金门县| 玉屏| 竹山县| 泰和县| 商丘市| 商城县| 长子县| 尉犁县| 华亭县| 武城县| 视频| 固阳县| 巴彦县| 辉南县| 宣恩县| 舒兰市| 林州市| 宣城市| 石家庄市| 清新县| 长春市| 松原市| 青川县| 嘉祥县| 南川市| 土默特左旗| 蒲城县| 清苑县| 昌乐县| 通州区| 昭通市| 南宁市| 成武县| 无极县|