NetworkPolicy

NetworkPolicy 描述一組 Pod 允許哪些網路流量。

apiVersion: networking.k8s.io/v1

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

NetworkPolicy

NetworkPolicy 描述一組 Pod 允許哪些網路流量


NetworkPolicySpec

NetworkPolicySpec 提供 NetworkPolicy 的規格


  • podSelector (LabelSelector),必要

    podSelector 選擇此 NetworkPolicy 物件套用的 Pod。 輸入規則陣列會套用至由此欄位選取的任何 Pod。 多個網路策略可以選取相同的 Pod 集。 在此情況下,每個輸入規則都會附加組合。 此欄位並非選用,且遵循標準標籤選擇器語意。 空的 podSelector 符合此命名空間中的所有 Pod。

  • policyTypes ([]string)

    Atomic:在合併期間將會被取代

    policyTypes 是 NetworkPolicy 相關的規則類型清單。 有效選項為 ["Ingress"]、["Egress"] 或 ["Ingress", "Egress"]。 如果未指定此欄位,則會根據輸入或輸出規則的存在預設;包含輸出區段的策略會假設影響輸出,而所有策略(無論是否包含輸入區段)都會假設影響輸入。 如果您想要撰寫僅限輸出的策略,則必須明確指定 policyTypes [ "Egress" ]。 同樣地,如果您想要撰寫指定不允許輸出的策略,則必須指定包含 "Egress" 的 policyTypes 值(因為此類策略不會包含輸出區段,否則預設只會是 [ "Ingress" ])。 此欄位在 1.8 版中為 Beta 級別

  • ingress ([]NetworkPolicyIngressRule)

    Atomic:在合併期間將會被取代

    ingress 是要套用至選取 Pod 的輸入規則清單。 如果沒有選取 Pod 的 NetworkPolicy(且叢集策略允許流量),或者如果流量來源是 Pod 的本機節點,或者如果流量符合所有 NetworkPolicy 物件的至少一個輸入規則(其 podSelector 符合 Pod),則允許流量進入 Pod。 如果此欄位為空,則此 NetworkPolicy 不允許任何流量(僅用於確保其選取的 Pod 預設為隔離狀態)

    NetworkPolicyIngressRule 描述一組特定的流量,這些流量允許進入 NetworkPolicySpec 的 podSelector 所符合的 Pod。 流量必須同時符合連接埠和來源。

    • ingress.from ([]NetworkPolicyPeer)

      Atomic:在合併期間將會被取代

      from 是一個來源清單,這些來源應能夠存取此規則選取的 Pod。 此清單中的項目使用邏輯 OR 運算組合。 如果此欄位為空或遺失,則此規則符合所有來源(流量不受來源限制)。 如果此欄位存在且包含至少一個項目,則只有在流量符合來源清單中的至少一個項目時,此規則才允許流量。

      NetworkPolicyPeer 描述允許流量進/出的對等點。 僅允許欄位的特定組合

      • ingress.from.ipBlock (IPBlock)

        ipBlock 定義特定 IPBlock 的策略。 如果設定此欄位,則其他欄位都不能設定。

        IPBlock 描述特定的 CIDR (例如 "192.168.1.0/24"、"2001:db8::/64"),允許其進入 NetworkPolicySpec 的 podSelector 所符合的 Pod。 except 項目描述不應包含在此規則中的 CIDR。

        • ingress.from.ipBlock.cidr (string),必要

          cidr 是一個字串,代表 IPBlock。有效的範例為 "192.168.1.0/24" 或 "2001:db8::/64"

        • ingress.from.ipBlock.except ([]string)

          Atomic:在合併期間將會被取代

          except 是 CIDR 的切片 (slice),應排除在 IPBlock 之外。有效的範例為 "192.168.1.0/24" 或 "2001:db8::/64"。如果 Except 值超出 cidr 範圍,將會被拒絕。

      • ingress.from.namespaceSelector (LabelSelector)

        namespaceSelector 使用叢集範圍的標籤選取命名空間。此欄位遵循標準標籤選擇器語意;如果存在但為空,則選取所有命名空間。

        如果也設定了 podSelector,則 NetworkPolicyPeer 整體會選取由 namespaceSelector 選取的命名空間中,符合 podSelector 的 Pod。否則,它會選取由 namespaceSelector 選取的所有命名空間中的所有 Pod。

      • ingress.from.podSelector (LabelSelector)

        podSelector 是一個標籤選擇器,用於選取 Pod。此欄位遵循標準標籤選擇器語意;如果存在但為空,則選取所有 Pod。

        如果也設定了 namespaceSelector,則 NetworkPolicyPeer 整體會選取由 NamespaceSelector 選取的命名空間中,符合 podSelector 的 Pod。否則,它會選取原則自身命名空間中符合 podSelector 的 Pod。

    • ingress.ports ([]NetworkPolicyPort)

      Atomic:在合併期間將會被取代

      ports 是應該在此規則選取的 Pod 上開放存取的連接埠列表。此列表中的每個項目都使用邏輯 OR 組合。如果此欄位為空或遺失,則此規則符合所有連接埠(流量不受連接埠限制)。如果此欄位存在且包含至少一個項目,則此規則僅在流量符合列表中的至少一個連接埠時才允許流量。

      NetworkPolicyPort 描述要允許流量通過的連接埠

      • ingress.ports.port (IntOrString)

        port 代表給定協定上的連接埠。這可以是 Pod 上的數字或具名連接埠。如果未提供此欄位,則這符合所有連接埠名稱和號碼。如果存在,則只會比對指定協定和連接埠上的流量。

        IntOrString 是一種可以容納 int32 或字串的類型。當在 JSON 或 YAML 中進行封送處理和解封送處理時,它會產生或消耗內部類型。這允許您擁有例如可以接受名稱或數字的 JSON 欄位。

      • ingress.ports.endPort (int32)

        endPort 表示如果設定,則應允許原則從 port 到 endPort(包含)的連接埠範圍。如果未定義 port 欄位,或如果 port 欄位定義為具名(字串)連接埠,則無法定義此欄位。endPort 必須等於或大於 port。

      • ingress.ports.protocol (string)

        protocol 代表流量必須符合的協定(TCP、UDP 或 SCTP)。如果未指定,此欄位預設為 TCP。

  • egress ([]NetworkPolicyEgressRule)

    Atomic:在合併期間將會被取代

    egress 是要應用於選取 Pod 的輸出規則列表。如果沒有 NetworkPolicy 選取 Pod(且叢集原則在其他方面允許流量),或者流量符合所有 NetworkPolicy 物件中至少一個輸出規則(其 podSelector 符合 Pod),則允許輸出流量。如果此欄位為空,則此 NetworkPolicy 會限制所有輸出流量(並且僅用於確保其選取的 Pod 預設情況下是隔離的)。此欄位在 1.8 版本中為 Beta 級別

    NetworkPolicyEgressRule 描述一組特定的流量,這些流量被允許從 NetworkPolicySpec 的 podSelector 比對的 Pod 中輸出。流量必須同時符合 ports 和 to。此類型在 1.8 版本中為 Beta 級別

    • egress.to ([]NetworkPolicyPeer)

      Atomic:在合併期間將會被取代

      to 是此規則選取的 Pod 的輸出流量目的地列表。此列表中的項目使用邏輯 OR 運算組合。如果此欄位為空或遺失,則此規則符合所有目的地(流量不受目的地限制)。如果此欄位存在且包含至少一個項目,則此規則僅在流量符合 to 列表中的至少一個項目時才允許流量。

      NetworkPolicyPeer 描述允許流量進/出的對等點。 僅允許欄位的特定組合

      • egress.to.ipBlock (IPBlock)

        ipBlock 定義特定 IPBlock 的策略。 如果設定此欄位,則其他欄位都不能設定。

        IPBlock 描述特定的 CIDR (例如 "192.168.1.0/24"、"2001:db8::/64"),允許其進入 NetworkPolicySpec 的 podSelector 所符合的 Pod。 except 項目描述不應包含在此規則中的 CIDR。

        • egress.to.ipBlock.cidr (string), 必填

          cidr 是一個字串,代表 IPBlock。有效的範例為 "192.168.1.0/24" 或 "2001:db8::/64"

        • egress.to.ipBlock.except ([]string)

          Atomic:在合併期間將會被取代

          except 是 CIDR 的切片 (slice),應排除在 IPBlock 之外。有效的範例為 "192.168.1.0/24" 或 "2001:db8::/64"。如果 Except 值超出 cidr 範圍,將會被拒絕。

      • egress.to.namespaceSelector (LabelSelector)

        namespaceSelector 使用叢集範圍的標籤選取命名空間。此欄位遵循標準標籤選擇器語意;如果存在但為空,則選取所有命名空間。

        如果也設定了 podSelector,則 NetworkPolicyPeer 整體會選取由 namespaceSelector 選取的命名空間中,符合 podSelector 的 Pod。否則,它會選取由 namespaceSelector 選取的所有命名空間中的所有 Pod。

      • egress.to.podSelector (LabelSelector)

        podSelector 是一個標籤選擇器,用於選取 Pod。此欄位遵循標準標籤選擇器語意;如果存在但為空,則選取所有 Pod。

        如果也設定了 namespaceSelector,則 NetworkPolicyPeer 整體會選取由 NamespaceSelector 選取的命名空間中,符合 podSelector 的 Pod。否則,它會選取原則自身命名空間中符合 podSelector 的 Pod。

    • egress.ports ([]NetworkPolicyPort)

      Atomic:在合併期間將會被取代

      ports 是輸出流量的目的地連接埠列表。此列表中的每個項目都使用邏輯 OR 組合。如果此欄位為空或遺失,則此規則符合所有連接埠(流量不受連接埠限制)。如果此欄位存在且包含至少一個項目,則此規則僅在流量符合列表中的至少一個連接埠時才允許流量。

      NetworkPolicyPort 描述要允許流量通過的連接埠

      • egress.ports.port (IntOrString)

        port 代表給定協定上的連接埠。這可以是 Pod 上的數字或具名連接埠。如果未提供此欄位,則這符合所有連接埠名稱和號碼。如果存在,則只會比對指定協定和連接埠上的流量。

        IntOrString 是一種可以容納 int32 或字串的類型。當在 JSON 或 YAML 中進行封送處理和解封送處理時,它會產生或消耗內部類型。這允許您擁有例如可以接受名稱或數字的 JSON 欄位。

      • egress.ports.endPort (int32)

        endPort 表示如果設定,則應允許原則從 port 到 endPort(包含)的連接埠範圍。如果未定義 port 欄位,或如果 port 欄位定義為具名(字串)連接埠,則無法定義此欄位。endPort 必須等於或大於 port。

      • egress.ports.protocol (string)

        protocol 代表流量必須符合的協定(TCP、UDP 或 SCTP)。如果未指定,此欄位預設為 TCP。

NetworkPolicyList

NetworkPolicyList 是 NetworkPolicy 物件的列表。


操作


get 讀取指定的 NetworkPolicy

HTTP 請求

GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}

參數

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

    NetworkPolicy 的名稱

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

    命名空間

  • pretty (在查詢中): 字串

    pretty

回應

200 (NetworkPolicy): 成功

401: 未經授權

list 列出或監看 NetworkPolicy 類型的物件

HTTP 請求

GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies

參數

回應

200 (NetworkPolicyList): 成功

401: 未經授權

list 列出或監看 NetworkPolicy 類型的物件

HTTP 請求

GET /apis/networking.k8s.io/v1/networkpolicies

參數

回應

200 (NetworkPolicyList): 成功

401: 未經授權

create 建立 NetworkPolicy

HTTP 請求

POST /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies

參數

回應

200 (NetworkPolicy): 成功

201 (NetworkPolicy): 已建立

202 (NetworkPolicy): 已接受

401: 未經授權

update 取代指定的 NetworkPolicy

HTTP 請求

PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}

參數

回應

200 (NetworkPolicy): 成功

201 (NetworkPolicy): 已建立

401: 未經授權

patch 部分更新指定的 NetworkPolicy

HTTP 請求

PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}

參數

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

    NetworkPolicy 的名稱

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

    命名空間

  • body: Patch, 必填

  • dryRun (在查詢中): 字串

    dryRun

  • fieldManager (在查詢中): 字串

    fieldManager

  • fieldValidation (在查詢中): 字串

    fieldValidation

  • force (在查詢中): 布林值

    force

  • pretty (在查詢中): 字串

    pretty

回應

200 (NetworkPolicy): 成功

201 (NetworkPolicy): 已建立

401: 未經授權

delete 刪除 NetworkPolicy

HTTP 請求

DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}

參數

回應

200 (Status): 成功

202 (Status): 已接受

401: 未經授權

deletecollection 刪除 NetworkPolicy 的集合

HTTP 請求

DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies

參數

回應

200 (Status): 成功

401: 未經授權

此頁面為自動產生。

如果您計劃回報此頁面的問題,請在您的問題描述中註明此頁面為自動產生。修正可能需要在 Kubernetes 專案的其他地方進行。

上次修改時間:2024 年 8 月 28 日下午 6:01 PST:更新 v1.31 的自動產生 API 參考 (8ba98c79c1)