協助改善此頁面
想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後在 上選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將安全群組指派至個別 pods
適用於:具有 Amazon EC2 執行個體的 Linux節點
適用於:私有子網路
用於Pods將 Amazon EC2 安全群組與 KubernetesPods. 您可以使用 Amazon EC2 安全群組定義規則,以允許您部署到在許多 Amazon EC2 執行個體類型和 Fargate 上執行的節點的傳入和輸出網路流量。Pods如需此功能的詳細說明,請參閱 Pods 的安全群組簡介
與Amazon VPC CNI plugin for Kubernetes功能的兼容性
您可以使用的安全性群組Pods具有下列功能:
-
IPv4來源網路位址轉譯-如需詳細資訊,請參閱啟用 的傳出網際網路存取 pods。
-
IPv6叢集、Pod 和服務的位址-如需詳細資訊,請參閱將IPv6地址指派給叢集,pods、 和服務。
-
使用Kubernetes網路政策限制流量-如需詳細資訊,請參閱使用Kubernetes網路原則限制pod流量。
考量事項
部署 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 執行個體系列支援,但並非由家族的所有世代提供支援。例如,支援
m5
c5
、r5
、m6g
c6g
、和r6g
例證族群和層代。不支援t
系列中的執行個體類型。如需支援執行個體類型的完整清單,請參閱上的 limits.go檔案。GitHub您的節點必須為該檔案列出的具有 IsTrunkingCompatible: true
的執行個體類型之一。 -
如果您也使用 Pod 安全政策來限制對 Pod 變動的存取權,則必須針對
psp
被指派到的role
在 KubernetesClusterRoleBinding
中指定eks:vpc-resource-controller
Kubernetes 使用者。如果您使用的是默認的 Amazon EKSpsp
role
ClusterRoleBinding
,和,這是eks:podsecuritypolicy:authenticated
ClusterRoleBinding
. 例如,您可以將使用者新增至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.11
strict
,或預設設定為POD_SECURITY_GROUP_ENFORCING_MODE
= 的版本,則指派安全群組時,Local
不支援externalTrafficPolicy
設定為的類型NodePort
和LoadBalancer
使用執行個體目標的Kubernetes服務。Pods如需將負載平衡器與執行個體目標搭配使用的詳細資訊,請參閱 路由 TCP 以及 UDP 流量 Network Load Balancers。 -
如果您使用的是預設設定
POD_SECURITY_GROUP_ENFORCING_MODE
= 的 Amazon 外VPCCNI掛程式1.10
或更早版本1.11
strict
,則來自指派安全群組的輸出流量會停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=standard
和AWS_VPC_K8S_CNI_EXTERNALSNAT=false
,傳送至外部端點的流量會VPC使用節點的安全群組,而不會使用Pod的安全群組。