協助改善此頁面
想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用Kubernetes網路原則限制pod流量
根據預設,Kubernetes 中沒有任何限制施加於 IP 地址、連接埠,或叢集中任何 Pods 之間或您的 Pods 與任何其他網路中的資源之間的連結。您可以使用 Kubernetes 網路政策來限制往返 Pods 之間的網路流量。如需詳細資訊,請參閱 Kubernetes 文件中的網路政策
如果您在叢集上有版本 1.13
或更早版本的 Amazon VPC CNI plugin for Kubernetes,您需要實作第三方解決方案才能將 Kubernetes 套用至叢集的網路政策。外掛程式的 1.14
版本或更新版本可以實作網絡政策,因此您不需要使用第三方解決方案。在本主題中,您將學習如何設定叢集以在叢集上使用 Kubernetes 網路政策,而不需要使用第三方附加元件。
Amazon VPC CNI plugin for Kubernetes 中的網路政策在以下組態中受到支援。
-
版本及更高版本
1.25
的 Amazon EKS 集群。 -
在您叢集上版本 1.14 或更高版本的 Amazon VPC CNI plugin for Kubernetes。
-
設定為
IPv4
或IPv6
地址的叢集。 -
您可以搭配 Pods 的安全群組來使用網路政策。有了網路政策,您就可以控制所有叢集內通訊。使用的安全性群組Pods,您可以控制 AWS 服務 從Pod.
-
您可以搭配自訂聯網和字首委派來使用網路政策。
考量事項
-
使用將Amazon VPC CNI plugin for Kubernetes網路政策套用至叢集時 Amazon VPC CNI plugin for Kubernetes,您只能將政策套用至 Amazon EC2 Linux 節點。您無法將這些政策套用至 Fargate 或 Windows 節點。
-
如果您的叢集目前正在使用第三方解決方案來管理 Kubernetes 網路政策,您可以搭配 Amazon VPC CNI plugin for Kubernetes 來使用那些相同的政策。然而,您必須移除現有的解決方案,如此才不會管理相同的政策。
-
您可以將多個網路政策套用至相同的 Pod。當設定了兩個以上選取相同 Pod 的政策,所有政策皆會套用至 Pod。
-
每個通訊協定
ingress:
或egress:
網路原則中每個通訊協定的唯一連接埠組合數目上限為 24 個。 -
對於任何一種您的 Kubernetes 服務,服務連接埠必須與容器連接埠相同。如果您使用的是已命名連接埠,請也要在服務規格中使用相同的名稱。
-
網路原則功能會建立並需要名為的
PolicyEndpoint
自訂資源定義 (CRD)policyendpoints.networking.k8s.aws
。PolicyEndpoint
自定義資源的對象由 Amazon 管理EKS。您不應修改或刪除這些資源。 -
如果您執行的網繭使用執行個體角色IAM認證或連線到 EC2IMDS,請小心檢查是否有會封鎖存取的網路原則EC2IMDS。您可能需要新增網路原則以允許存取EC2IMDS。如需詳細資訊,請參閱 Amazon 使用者指南中的執行個體中繼資料和EC2使用者資料。
使用服務帳戶IAM角色的網繭無法存取EC2IMDS。
-
Amazon VPC CNI plugin for Kubernetes 不會將網路政策套用至每個 Pod 的其他網路介面,而只會套用每個 Pod 的主要介面 (
eth0
)。這會影響下列架構:-
ENABLE_V4_EGRESS
變數設定為true
的IPv6
Pod。此變數可讓IPv4
輸出功能將IPv6網繭連線至IPv4
端點,例如叢集外部的端點。IPv4
輸出功能的運作方式是使用本機回送IPv4位址建立額外的網路介面。 -
當使用鏈接的網絡插件,Multus如. 由於這些外掛程式會將網路介面新增至每個 Pod,因此網路政策不會套用至鏈結的網路外掛程式。
-