協助改善此頁面
想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後在 上選取編輯此頁面 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,因此網路政策不會套用至鏈結的網路外掛程式。
-