NetworkPolicy
apiVersion: networking.k8s.io/v1
import "k8s.io/api/networking/v1"
NetworkPolicy
NetworkPolicy 描述一組 Pod 允許哪些網路流量
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata (ObjectMeta)
標準物件的中繼資料。 更多資訊: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (NetworkPolicySpec)
spec 代表此 NetworkPolicy 所需行為的規格。
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 物件的列表。
apiVersion: networking.k8s.io/v1
kind: NetworkPolicyList
metadata (ListMeta)
標準列表 metadata。更多資訊: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
items ([]NetworkPolicy), 必填
items 是綱要物件的列表。
操作
get
讀取指定的 NetworkPolicy
HTTP 請求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
參數
回應
200 (NetworkPolicy): 成功
401: 未經授權
list
列出或監看 NetworkPolicy 類型的物件
HTTP 請求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
參數
namespace (在路徑中): 字串, 必填
allowWatchBookmarks (在查詢中): 布林值
continue (在查詢中): 字串
fieldSelector (在查詢中): 字串
labelSelector (在查詢中): 字串
limit (在查詢中): 整數
pretty (在查詢中): 字串
resourceVersion (在查詢中): 字串
resourceVersionMatch (在查詢中): 字串
sendInitialEvents (在查詢中): 布林值
timeoutSeconds (在查詢中): 整數
watch (在查詢中): 布林值
回應
200 (NetworkPolicyList): 成功
401: 未經授權
list
列出或監看 NetworkPolicy 類型的物件
HTTP 請求
GET /apis/networking.k8s.io/v1/networkpolicies
參數
allowWatchBookmarks (在查詢中): 布林值
continue (在查詢中): 字串
fieldSelector (在查詢中): 字串
labelSelector (在查詢中): 字串
limit (在查詢中): 整數
pretty (在查詢中): 字串
resourceVersion (在查詢中): 字串
resourceVersionMatch (在查詢中): 字串
sendInitialEvents (在查詢中): 布林值
timeoutSeconds (在查詢中): 整數
watch (在查詢中): 布林值
回應
200 (NetworkPolicyList): 成功
401: 未經授權
create
建立 NetworkPolicy
HTTP 請求
POST /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
參數
namespace (在路徑中): 字串, 必填
body: NetworkPolicy, 必填
dryRun (在查詢中): 字串
fieldManager (在查詢中): 字串
fieldValidation (在查詢中): 字串
pretty (在查詢中): 字串
回應
200 (NetworkPolicy): 成功
201 (NetworkPolicy): 已建立
202 (NetworkPolicy): 已接受
401: 未經授權
update
取代指定的 NetworkPolicy
HTTP 請求
PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
參數
name (在路徑中): 字串, 必填
NetworkPolicy 的名稱
namespace (在路徑中): 字串, 必填
body: NetworkPolicy, 必填
dryRun (在查詢中): 字串
fieldManager (在查詢中): 字串
fieldValidation (在查詢中): 字串
pretty (在查詢中): 字串
回應
200 (NetworkPolicy): 成功
201 (NetworkPolicy): 已建立
401: 未經授權
patch
部分更新指定的 NetworkPolicy
HTTP 請求
PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
參數
name (在路徑中): 字串, 必填
NetworkPolicy 的名稱
namespace (在路徑中): 字串, 必填
body: Patch, 必填
dryRun (在查詢中): 字串
fieldManager (在查詢中): 字串
fieldValidation (在查詢中): 字串
force (在查詢中): 布林值
pretty (在查詢中): 字串
回應
200 (NetworkPolicy): 成功
201 (NetworkPolicy): 已建立
401: 未經授權
delete
刪除 NetworkPolicy
HTTP 請求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
參數
name (在路徑中): 字串, 必填
NetworkPolicy 的名稱
namespace (在路徑中): 字串, 必填
body: DeleteOptions
dryRun (在查詢中): 字串
gracePeriodSeconds (在查詢中): 整數
pretty (在查詢中): 字串
propagationPolicy (在查詢中): 字串
回應
200 (Status): 成功
202 (Status): 已接受
401: 未經授權
deletecollection
刪除 NetworkPolicy 的集合
HTTP 請求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
參數
namespace (在路徑中): 字串, 必填
body: DeleteOptions
continue (在查詢中): 字串
dryRun (在查詢中): 字串
fieldSelector (在查詢中): 字串
gracePeriodSeconds (在查詢中): 整數
labelSelector (在查詢中): 字串
limit (在查詢中): 整數
pretty (在查詢中): 字串
propagationPolicy (在查詢中): 字串
resourceVersion (在查詢中): 字串
resourceVersionMatch (在查詢中): 字串
sendInitialEvents (在查詢中): 布林值
timeoutSeconds (在查詢中): 整數
回應
200 (Status): 成功
401: 未經授權
此頁面為自動產生。
如果您計劃回報此頁面的問題,請在您的問題描述中註明此頁面為自動產生。修正可能需要在 Kubernetes 專案的其他地方進行。