將安全群組指派至個別 pods - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後在 上選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合所有人。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將安全群組指派至個別 pods

適用於:具有 Amazon EC2 執行個體的 Linux節點

適用於:私有子網路

用於Pods將 Amazon EC2 安全群組與 KubernetesPods. 您可以使用 Amazon EC2 安全群組定義規則,以允許您部署到在許多 Amazon EC2 執行個體類型和 Fargate 上執行的節點的傳入和輸出網路流量。Pods如需此功能的詳細說明,請參閱 Pods 的安全群組簡介部落格文章。

與Amazon VPC CNI plugin for Kubernetes功能的兼容性

您可以使用的安全性群組Pods具有下列功能:

考量事項

部署 Pods 的安全群組之前,請考慮下列限制和條件:

  • Pods 的安全群組無法與 Windows 節點搭配使用。

  • 的安全群組Pods可以使用版本 1.16.0 或更新版本的 Amazon 外掛程式,與針對包含 Amazon EC2 節點的IPv6系列設定的叢集搭配使用。VPC CNI您可以在叢集中使用安全群組,使用 Amazon VPC CNI 外掛程式的 1.7.7 版或更新版本,設定僅包含 Fargate 節點的IPv6系列。Pods如需詳細資訊,請參閱 將IPv6地址指派給叢集,pods、 和服務

  • 的安全群組Pods受到大多數以 NITO 為基礎的 Amazon EC2 執行個體系列支援,但並非由家族的所有世代提供支援。例如,支援m5c5r5m6gc6g、和r6g例證族群和層代。不支援 t 系列中的執行個體類型。如需支援執行個體類型的完整清單,請參閱上的 limits.go 檔案。GitHub您的節點必須為該檔案列出的具有 IsTrunkingCompatible: true 的執行個體類型之一。

  • 如果您也使用 Pod 安全政策來限制對 Pod 變動的存取權,則必須針對 psp 被指派到的 role 在 Kubernetes ClusterRoleBinding 中指定 eks:vpc-resource-controller Kubernetes 使用者。如果您使用的是默認的 Amazon EKS psp roleClusterRoleBinding,和,這是 eks:podsecuritypolicy:authenticatedClusterRoleBinding. 例如,您可以將使用者新增至 subjects: 區段,如下列範例所示:

    [...] subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: system:authenticated - apiGroup: rbac.authorization.k8s.io kind: User name: eks:vpc-resource-controller - kind: ServiceAccount name: eks-vpc-resource-controller
  • 如果您使用的是自訂聯網和 Pods 的安全群組,則會使用 Pods 安全群組指定的安全群組,而不是 ENIConfig 指定的安全群組。

  • 如果您使用的是 Amazon VPC CNI 插件的版本1.10.2或更早版本,並且在Pod規範中包含該terminationGracePeriodSeconds設置,則該設置的值不能為零。

  • 如果您使用的是 Amazon VPC CNI 外掛程式的版本1.10或更早版本 1.11strict,或預設設定為 POD_SECURITY_GROUP_ENFORCING_MODE = 的版本,則指派安全群組時,Local不支援externalTrafficPolicy設定為的類型NodePortLoadBalancer使用執行個體目標的Kubernetes服務。Pods如需將負載平衡器與執行個體目標搭配使用的詳細資訊,請參閱 路由 TCP 以及 UDP 流量 Network Load Balancers

  • 如果您使用的是預設設定 POD_SECURITY_GROUP_ENFORCING_MODE = 的 Amazon 外VPCCNI掛程式1.10或更早版本 1.11strict,則來自指派安全群組的輸出流量會停Pods用來源NAT,以便套用輸出安全群組規則。若要存取網際網路,必須在使Pods用NAT閘道或執行個體設定的私有子網路中部署的節點上啟動指派的安全群組。 Pods部署至公用子網路的指派安全群組無法存取網際網路。

    如果您使用的是版本1.11或更新版本的外掛程式 POD_SECURITY_GROUP_ENFORCING_MODE =standard,則Pod傳送至外部的流量會轉換VPC為執行個體主要網路介面的 IP 位址。對於此流量,將使用主要網路介面的安全群組中的規則,而不是使用 Pod's 安全群組中的規則。

  • 若要使用具有關聯安全群組Pods的Calico網路政策,您必須使用 Amazon VPC CNI 外掛程式的版本1.11.0或更新版本並設定 POD_SECURITY_GROUP_ENFORCING_MODE = standard。否則,Pods與相關安全群組相關聯的流量流量不會受到Calico網路政策強制執行,且僅限於 Amazon EC2 安全群組強制執行。要更新您的 Amazon VPC CNI 版本,請參閱 IPs 指派給 Pods 使用 Amazon VPC CNI

  • Pods在使用叢集中使用安全群組的 Amazon EC2 節點上執行,NodeLocalDNSCache僅支援 Amazon VPC CNI 外掛程式的版本1.11.0或更新版本以及 POD_SECURITY_GROUP_ENFORCING_MODE = standard。若要更新您的 Amazon VPC CNI 外掛程式版本,請參閱 IPs 指派給 Pods 使用 Amazon VPC CNI

  • Pods 的安全群組可能會導致具有高流失率的 Pods 產生更高的 Pod 啟動延遲。原因是資源控制器的速率限制。

  • EC2安全性群組範圍位於Pod層級-如需詳細資訊,請參閱安全性群組

    如果您設定POD_SECURITY_GROUP_ENFORCING_MODE=standardAWS_VPC_K8S_CNI_EXTERNALSNAT=false,傳送至外部端點的流量會VPC使用節點的安全群組,而不會使用Pod的安全群組。