協助改進此頁面
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
了解叢集、Pod 與服務的 IPv6 位址
適用於:具有 Amazon EC2 執行個體的 Pod 和 Fargate Pod
預設情況下,Kubernetes 會為您的 Pod 和服務指派 IPv4 位址。您可以將叢集設定為對 Pod 和服務指派 IPv6 位址,而不是指派 IPv4 位址。即使 Kubernetes 本身支援,Amazon EKS 也不支援雙重堆疊 Pod 或服務。因此,您無法同時將 IPv4 和 IPv6 位址指派給 Pod 和服務。
您可以在建立叢集時選擇要用於此叢集的 IP 系列。建立叢集後無法變更系列。
有關部署 Amazon EKS IPv6 叢集的教學,請參閱 部署 Amazon EKS IPv6 叢集和受管 Amazon Linux 節點。
以下是使用該功能的考量事項:
IPv6 功能支援
-
不支援 Windows:不支援 Windows Pod 與服務。
-
需要 Nitro 型 EC2 節點:您僅可在 AWS Nitro 型 Amazon EC2 或 Fargate 節點上使用
IPv6。 -
支援 EC2 與 Fargate 節點:在 Amazon EC2 節點與 Fargate 節點上,皆可搭配 將安全群組指派至個別 Pod 使用
IPv6。 -
不支援 Outpost:無法在 使用 AWS Outposts 在內部部署 Amazon EKS 上使用
IPv6。 -
不支援 FSx for Lustre:不支援 搭配 Amazon FSx for Lustre 使用高效能應用程式儲存。
-
不支援自訂聯網:如果您以前使用 使用自訂聯網在替代子網路中部署 Pod 來幫助緩解 IP 位址耗盡情況,則可以改用
IPv6。您無法將自訂聯網與IPv6搭配使用。如果您使用自訂聯絡進行網路隔離,則可能需要繼續為叢集使用自訂聯網和IPv4系列。
IP 位址指派
-
Kubernetes 服務:Kubernetes 服務只會指派一個
IPv6位址。它們不會被指派 IPv4 位址。 -
Pod:Pod 會被指派一個 IPv6 位址和一個主機本機的 IPv4 位址。主機本機 IPv4 位址透過使用與 VPC CNI 鏈結的主機本機 CNI 外掛程式指派,且位址不會報告給 Kubernetes 控制平面。它僅在 Pod 需要與另一個 Amazon VPC 或網際網路中的外部 IPv4 資源通訊時使用。主機本機 IPv4 位址會透過 VPC CNI 進行來源網路位址轉換 (SNAT),對應到工作節點主要 ENI 的主要 IPv4 位址。
-
Pod 和服務:Pod 和服務只會接收
IPv6位址,而非IPv4位址。當 Pod 需要與外部IPv4端點通訊時,會使用節點本身的 NAT。此內建的 NAT 功能消除了對 DNS64 和 NAT64 的需求。對於需要公有網際網路存取的流量,Pod 的流量是轉換為公有 IP 位址的來源網路位址。 -
路由位址:當 Pod 在 VPC 外部通訊時,會保留其原始
IPv6位址 (不會轉譯為節點的IPv6位址)。此流量會直接透過網際網路閘道或僅限輸出的網際網路閘道進行路由。 -
節點:為所有節點指派
IPv4和IPv6位址。 -
Fargate Pod:每個 Fargate Pod 接收來自 CIDR 的
IPv6位址,為其部署在其中的子網路指定此位址。執行 Fargate Pod 的基礎硬體單位從 CIDR 取得唯一的IPv4和IPv6位址,這些位址指派給部署硬體單位的子網路。
如何搭配 EKS 使用 IPv6
-
建立新叢集:您必須建立新叢集,並指定要為該叢集使用
IPv6系列。無法為從早期版本更新的叢集啟用IPv6系列。如需如何建立新叢集的指示,請參閱「考量」。 -
使用最新的 VPC CNI:部署 Amazon VPC CNI 版本
1.10.1或更新版本。依預設,將部署此版本或更新版本。部署附加元件後,您就無法將 Amazon VPC CNI 附加元件降級為低於1.10.1的版本,且不先移除叢集中所有節點群組中的所有節點。 -
設定
IPv6的 VPC CNI:如果您使用 Amazon EC2 節點,則必須使用 IP 字首委派和IPv6設定 Amazon VPC CNI 附加元件。如果您在建立叢集時選擇IPv6系列,則附加元件的1.10.1版本預設為此設定。自我管理或 Amazon EKS 附加元件都是這種情況。如需 IP 字首委派的詳細資訊,請參閱 將更多 IP 位址指派給具有字首的 Amazon EKS 節點。 -
設定
IPv4和IPv6位址:建立叢集時,您指定的 VPC 和子網路必須具有指派給所指定 VPC 和子網路的IPv6CIDR 區塊。此外,還必須為其指派IPv4CIDR 區塊。這是因為,即使您只想使用IPv6,VPC 仍然需要IPv4CIDR 區塊才能正常工作。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的建立 IPv6 CIDR 區塊與 VPC 的關聯。 -
將 IPv6 位址自動指派給節點:建立叢集和節點時,必須指定設定為自動指派
IPv6位址的子網路。否則,您無法部署您的節點。根據預設,會停用此設定。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的修改子網路的 IPv6 定址屬性。 -
設定路由表以使用
IPv6:指派給子網路的路由表必須具有IPv6位址的路由。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的遷移至 IPv6。 -
設定
IPv6的安全群組:您的安全群組必須允許IPv6位址。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的遷移至 IPv6。 -
設定負載平衡器:使用
2.3.1Load Balancer 控制器的版本 AWS 更新版本,透過 透過 Application Load Balancer 路由應用程式與 HTTP 流量 對 HTTP 應用程式進行負載平衡,或使用 透過 Network Load Balancer 路由 TCP 與 UDP 流量 對使用任一負載平衡器 (IP 模式,而非執行個體模式) 的IPv6Pod 進行網路流量負載平衡。如需詳細資訊,請參閱 透過 AWS Load Balancer 控制器路由網際網路流量。 -
新增
IPv6IAM 政策:您必須將IPv6IAM 政策連接至節點 IAM 或 CNI IAM 角色。在兩者之間,建議您將其連接至 CNI IAM 角色。如需詳細資訊,請參閱為使用 IPv6 系列的叢集建立 IAM 政策及步驟 1:建立 Kubernetes 專用 Amazon VPC CNI 外掛程式 IAM 角色。 -
評估所有元件:我們建議您對應用程式、Amazon EKS 附加元件以及在部署 AWS 叢集之前整合的
IPv6服務執行全面的評估。這是為了確保使用IPv6時一切都能正常工作。 -
為自我管理節點群組新增
BootstrapArguments:在使用IPv6系列的叢集中建立自我管理的節點群組時,使用者資料必須包含在節點啟動時執行的 bootstrap.sh檔案的下列 BootstrapArguments。使用叢集 VPC 的IPv6CIDR 範圍取代your-cidr。--ip-family ipv6 --service-ipv6-cidr your-cidr如果您不知道叢集的
IPv6CIDR範圍,可以使用下列命令查看範圍 (需要 AWS CLI 版本2.4.9或更新版本)。aws eks describe-cluster --name my-cluster --query cluster.kubernetesNetworkConfig.serviceIpv6Cidr --output text