使用Kubernetes網路原則限制pod流量 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] 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。

  • 設定為 IPv4IPv6 地址的叢集。

  • 您可以搭配 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.awsPolicyEndpoint自定義資源的對象由 Amazon 管理EKS。您不應修改或刪除這些資源。

  • 如果您執行的網繭使用執行個體角色IAM認證或連線到 EC2IMDS,請小心檢查是否有會封鎖存取的網路原則EC2IMDS。您可能需要新增網路原則以允許存取EC2IMDS。如需詳細資訊,請參閱 Amazon 使用者指南中的執行個體中繼資料和EC2使用者資料。

    使用服務帳戶IAM角色的網繭無法存取EC2IMDS。

  • Amazon VPC CNI plugin for Kubernetes 不會將網路政策套用至每個 Pod 的其他網路介面,而只會套用每個 Pod 的主要介面 (eth0)。這會影響下列架構:

    • ENABLE_V4_EGRESS 變數設定為 trueIPv6 Pod。此變數可讓IPv4輸出功能將IPv6網繭連線至IPv4端點,例如叢集外部的端點。IPv4輸出功能的運作方式是使用本機回送IPv4位址建立額外的網路介面。

    • 當使用鏈接的網絡插件,Multus如. 由於這些外掛程式會將網路介面新增至每個 Pod,因此網路政策不會套用至鏈結的網路外掛程式。