協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要提供此使用者指南,請選擇位於每個頁面右窗格中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將安全群組指派給個別 Pod
適用於:具有 Amazon EC2 執行個體的 Linux 節點
適用於:私有子網路
Pod 的安全群組將 Amazon EC2 安全群組與 Kubernetes Pod 整合。您可以使用 Amazon EC2 安全群組來定義規則,允許傳入和傳出網路流量進出您部署到在許多 Amazon EC2 執行個體類型和 Fargate 上執行的節點的 Pod。如需此功能的詳細說明,請參閱 Pod 的安全群組簡介
與適用於 Kubernetes 功能的 Amazon VPC CNI 外掛程式的相容性
您可以針對具有下列功能的 Pod 使用安全群組:
-
IPv4 來源網路地址轉譯 - 如需詳細資訊,請參閱 啟用 Pod 的傳出網際網路存取。
-
叢集、Pod 和服務的 IPv6 地址 - 如需詳細資訊,請參閱 了解叢集、Pod 和 服務的 IPv6 地址。
-
使用 Kubernetes 網路政策限制流量 - 如需詳細資訊,請參閱 使用 Kubernetes 網路政策限制 Pod 流量。
考量事項
部署 Pod 的安全群組之前,請考慮下列限制和條件:
-
Pod 的安全群組無法與 Windows 節點搭配使用。
-
Pod 的安全群組可與針對包含 Amazon EC2 節點的
IPv6
系列設定的叢集搭配使用,方法是使用 Amazon VPC CNI 外掛程式的 1.16.0 版或更新版本。您可以使用 1.7.7 版或更新版本的 Amazon VPC CNI 外掛程式,針對叢集設定僅包含 Fargate 節點IPv6
系列之 Pod 使用安全群組。如需詳細資訊,請參閱了解叢集、Pod 和 服務的 IPv6 地址 -
大多數 Nitro 型 Amazon EC2 執行個體系列都支援 Pod 的安全群組,但並非所有世代的系列都支援。例如,支援
m5
、c5
、r5
、c6g
、m6g
和r6g
執行個體系列和世代。不支援t
系列中的執行個體類型。如需支援執行個體類型的完整清單,請參閱 GitHub 上的 limit.go檔案。您的節點必須為該檔案列出的具有 IsTrunkingCompatible: true
的執行個體類型之一。 -
如果您同時使用 Pod 的自訂聯網和安全群組,則會使用 Pod 安全群組指定的安全群組,而不是 中指定的安全群組
ENIConfig
。 -
如果您使用的是 版本
1.10.2
或更早版本的 Amazon VPC CNI 外掛程式,且在 Pod 規格中包含terminationGracePeriodSeconds
設定,則設定的值不能為零。 -
如果您使用的是 版本
1.10
或更早版本的 Amazon VPC CNI 外掛程式,或1.11
具有POD_SECURITY_GROUP_ENFORCING_MODE
= 的版本strict
,這是預設設定,則您指派安全群組的 PodLocal
不支援類型NodePort
和LoadBalancer
使用externalTrafficPolicy
執行個體目標設定為 的 Kubernetes 服務。如需將負載平衡器與執行個體目標搭配使用的詳細資訊,請參閱 使用 Network Load Balancer 路由 TCP 和 UDP 流量。 -
如果您使用版本
1.10
或更早版本的 Amazon VPC CNI 外掛程式,或1.11
具有POD_SECURITY_GROUP_ENFORCING_MODE
= 的版本strict
,這是預設設定,則來源 NAT 會針對來自具有指派安全群組之 Pod 的傳出流量停用,以便套用傳出安全群組規則。若要存取網際網路,必須在以 NAT 閘道或執行個體設定之私有子網路中部署的節點上啟動具有指派安全群組的 Pod。已指派安全群組部署至公有子網路的 Pod 無法存取網際網路。如果您使用版本
1.11
或更新版本的外掛程式搭配POD_SECURITY_GROUP_ENFORCING_MODE
=standard
,則目的地為 VPC 外部的 Pod 流量會轉譯為執行個體主要網路界面的 IP 地址。對於此流量,會使用主要網路界面安全群組中的規則,而不是 Pod 安全群組中的規則。 -
若要將 Calico 網路政策與具有關聯安全群組的 Pod 搭配使用,您必須使用
1.11.0
或更新版本的 Amazon VPC CNI 外掛程式,並設定POD_SECURITY_GROUP_ENFORCING_MODE
=standard
。否則,進出具有相關聯安全群組之 Pod 的流量不受 Calico 網路政策強制執行的約束,且僅限於 Amazon EC2 安全群組強制執行。若要更新 Amazon VPC CNI 版本,請參閱 使用 Amazon VPC CNI 將 IPs 指派給 Pod -
在使用 NodeLocal DNSCache
的叢集中使用安全群組的 Amazon EC2 節點上執行的 Pod 僅支援版本 1.11.0
或更新版本的 Amazon VPC CNI 外掛程式和POD_SECURITY_GROUP_ENFORCING_MODE
=standard
。若要更新您的 Amazon VPC CNI 外掛程式版本,請參閱 使用 Amazon VPC CNI 將 IPs 指派給 Pod -
對於流失率較高的 Pod,Pod 的安全群組可能會導致較高的 Pod 啟動延遲。原因是資源控制器的速率限制。
-
EC2 安全群組範圍位於 Pod 層級 - 如需詳細資訊,請參閱安全群組。
如果您設定
POD_SECURITY_GROUP_ENFORCING_MODE=standard
和AWS_VPC_K8S_CNI_EXTERNALSNAT=false
,則目的地為 VPC 外部端點的流量會使用節點的安全群組,而不是 Pod 的安全群組。