EndpointSlice

EndpointSlice 表示一組服務端點。

apiVersion: discovery.k8s.io/v1

import "k8s.io/api/discovery/v1"

EndpointSlice

EndpointSlice 表示一組服務端點。大多數 EndpointSlice 由 EndpointSlice 控制器建立,以表示被 Service 物件選中的 Pod。對於一個給定的服務,可能會有多個 EndpointSlice 物件,這些物件必須組合在一起才能生成完整的端點集;你可以透過列出服務名稱空間中 kubernetes.io/service-name 標籤包含服務名稱的 EndpointSlice 來找到給定服務的所有切片。


  • apiVersion: discovery.k8s.io/v1

  • kind: EndpointSlice

  • metadata (ObjectMeta)

    標準物件的元資料。

  • addressType (string),必填

    addressType 指定此 EndpointSlice 所攜帶的地址型別。此切片中的所有地址必須是相同型別。此欄位在建立後不可變。目前支援以下地址型別:* IPv4:表示 IPv4 地址。* IPv6:表示 IPv6 地址。* FQDN:表示完全限定域名。(已棄用) EndpointSlice 控制器只生成,並且 kube-proxy 只處理地址型別為“IPv4”和“IPv6”的切片。“FQDN”型別沒有定義任何語義。

  • endpoints ([]Endpoint),必填

    原子性:在合併期間將被替換

    endpoints 是此切片中唯一端點的列表。每個切片最多可包含 1000 個端點。

    Endpoint 表示實現服務的單個邏輯“後端”。

    • endpoints.addresses ([]string),必填

      集合:合併時將保留唯一值

      此端點的地址。對於 addressType 為“IPv4”或“IPv6”的 EndpointSlice,值是規範形式的 IP 地址。其他 addressType 值的語法和語義未定義。此欄位必須包含至少一個地址,但不能超過 100 個。EndpointSlice 控制器生成的 EndpointSlice 始終只有一個地址。對於第一個地址之外的附加地址未定義任何語義,並且 kube-proxy 不會檢視它們。

    • endpoints.conditions (EndpointConditions)

      conditions 包含有關端點當前狀態的資訊。

      EndpointConditions 表示端點的當前狀況。

      • endpoints.conditions.ready (boolean)

        ready 表示此端點已準備好接收流量,具體取決於管理此端點的系統。nil 值應解釋為“true”。通常,如果端點正在提供服務且未終止,則應將其標記為就緒,儘管在某些情況下可以覆蓋此行為,例如當關聯的服務設定了 publishNotReadyAddresses 標誌時。

      • endpoints.conditions.serving (boolean)

        serving 表示此端點能夠接收流量,具體取決於管理此端點的系統。對於由 Pod 支援的端點,如果 Pod 的 Ready 狀況為 True,EndpointSlice 控制器將把該端點標記為 serving。nil 值應解釋為“true”。

      • endpoints.conditions.terminating (boolean)

        terminating 表示此端點正在終止。nil 值應解釋為“false”。

    • endpoints.deprecatedTopology (map[string]string)

      deprecatedTopology 包含 v1beta1 API 中的拓撲資訊。此欄位已棄用,並將在 v1beta1 API 刪除時(不早於 kubernetes v1.24)刪除。雖然此欄位可以儲存值,但無法透過 v1 API 寫入,並且任何寫入嘗試都將被靜默忽略。拓撲資訊可以在 zone 和 nodeName 欄位中找到。

    • endpoints.hints (EndpointHints)

      hints 包含與端點應如何使用相關的資訊。

      EndpointHints 提供描述端點應如何使用的提示。

      • endpoints.hints.forNodes ([]ForNode)

        原子性:在合併期間將被替換

        forNodes 指示在使用拓撲感知路由時應由哪些節點使用此端點。最多可包含 8 個條目。這是一個 Alpha 功能,僅在啟用 PreferSameTrafficDistribution 功能門時使用。

        ForNode 提供有關哪些節點應使用此端點的資訊。

        • endpoints.hints.forNodes.name (string),必填

          name 表示節點的名稱。

      • endpoints.hints.forZones ([]ForZone)

        原子性:在合併期間將被替換

        forZones 指示在使用拓撲感知路由時應由哪些區域使用此端點。最多可包含 8 個條目。

        ForZone 提供有關哪些區域應使用此端點的資訊。

        • endpoints.hints.forZones.name (string),必填

          name 表示區域的名稱。

    • endpoints.hostname (string)

      此端點的主機名。端點使用者可以使用此欄位來區分端點(例如在 DNS 名稱中)。使用相同主機名的多個端點應被視為可互換(例如 DNS 中的多個 A 記錄)。必須是小寫並符合 DNS Label (RFC 1123) 驗證。

    • endpoints.nodeName (string)

      nodeName 表示託管此端點的節點的名稱。這可用於確定節點本地的端點。

    • endpoints.targetRef (ObjectReference)

      targetRef 是對此端點所代表的 Kubernetes 物件的引用。

    • endpoints.zone (string)

      zone 是此端點所在的區域名稱。

  • ports ([]EndpointPort)

    原子性:在合併期間將被替換

    ports 指定此切片中每個端點暴露的網路埠列表。每個埠必須具有唯一名稱。每個切片最多可包含 100 個埠。服務始終至少有 1 個埠,因此由 EndpointSlice 控制器生成的 EndpointSlice 也始終至少有 1 個埠。用於其他目的的 EndpointSlice 可以有一個空的埠列表。

    EndpointPort 表示由 EndpointSlice 使用的埠。

    • ports.port (int32)

      port 表示端點的埠號。如果 EndpointSlice 派生自 Kubernetes 服務,則此值必須設定為服務的 target port。用於其他目的的 EndpointSlice 可以有一個 nil 埠。

    • ports.protocol (string)

      protocol 表示此埠的 IP 協議。必須是 UDP、TCP 或 SCTP。預設為 TCP。

    • ports.name (string)

      name 表示此埠的名稱。EndpointSlice 中的所有埠必須具有唯一名稱。如果 EndpointSlice 派生自 Kubernetes 服務,則此名稱對應於 Service.ports[].name。名稱必須為空字串或透過 DNS_LABEL 驗證:* 最多 63 個字元。* 必須由小寫字母數字字元或“-”組成。* 必須以字母數字字元開頭和結尾。預設為空字串。

    • ports.appProtocol (string)

      此埠的應用協議。這用作實現的提示,以便為它們理解的協議提供更豐富的行為。此欄位遵循標準 Kubernetes 標籤語法。有效值可以是

EndpointSliceList

EndpointSliceList 表示端點切片列表


  • apiVersion: discovery.k8s.io/v1

  • kind: EndpointSliceList

  • metadata (ListMeta)

    標準列表元資料。

  • items ([]EndpointSlice),必填

    items 是端點切片列表

操作


get 讀取指定的 EndpointSlice

HTTP 請求

GET /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}

引數

  • name (在路徑中): string,必填

    EndpointSlice 的名稱

  • namespace (在路徑中): string,必填

    名稱空間

  • pretty (在查詢中): string

    pretty

響應

200 (EndpointSlice): OK

401: 未授權

list 列出或監視 EndpointSlice 型別的物件

HTTP 請求

GET /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices

引數

響應

200 (EndpointSliceList): OK

401: 未授權

list 列出或監視 EndpointSlice 型別的物件

HTTP 請求

GET /apis/discovery.k8s.io/v1/endpointslices

引數

響應

200 (EndpointSliceList): OK

401: 未授權

create 建立一個 EndpointSlice

HTTP 請求

POST /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices

引數

響應

200 (EndpointSlice): OK

201 (EndpointSlice): 已建立

202 (EndpointSlice): 已接受

401: 未授權

update 替換指定的 EndpointSlice

HTTP 請求

PUT /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}

引數

響應

200 (EndpointSlice): OK

201 (EndpointSlice): 已建立

401: 未授權

patch 部分更新指定的 EndpointSlice

HTTP 請求

PATCH /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}

引數

  • name (在路徑中): string,必填

    EndpointSlice 的名稱

  • namespace (在路徑中): string,必填

    名稱空間

  • body: Patch,必需

  • dryRun (在查詢中): string

    dryRun

  • fieldManager (在查詢中): string

    fieldManager

  • fieldValidation (在查詢中): string

    fieldValidation

  • force (在查詢中): boolean

    force

  • pretty (在查詢中): string

    pretty

響應

200 (EndpointSlice): OK

201 (EndpointSlice): 已建立

401: 未授權

delete 刪除一個 EndpointSlice

HTTP 請求

DELETE /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices/{name}

引數

響應

200 (Status): OK

202 (Status): 已接受

401: 未授權

deletecollection 刪除 EndpointSlice 集合

HTTP 請求

DELETE /apis/discovery.k8s.io/v1/namespaces/{namespace}/endpointslices

引數

響應

200 (Status): OK

401: 未授權

本頁面是自動生成的。

如果你打算報告此頁面存在的問題,請在問題描述中提及此頁面是自動生成的。修復可能需要在 Kubernetes 專案的其他地方進行。

最後修改時間:2025 年 4 月 24 日上午 9:14 PST:v1.33 的 Markdown API 參考 (b84ec30bbb)