本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
檢視 EKS 和子網路的 Amazon VPC 網路需求
建立叢集時,您可以指定一個 VPC 和至少兩個位於不同可用區域中的子網路。本主題概述 Amazon EKS 特定需求,以及與叢集搭配使用的 VPC 和子網路考量事項。如果您沒有可與 Amazon VPC 搭配使用的 EKS,您可以使用 Amazon EKS 提供的 AWS CloudFormation 範本為您的 Amazon VPC 叢集建立 Amazon EKS 建立 Word。如果您要在 AWS Outposts 上建立本機或延伸叢集,請參閱 在 AWS Outposts 上為 Amazon EKS 叢集建立 Word VPC和子網路而非本主題。
VPC要求和考量
建立叢集時,您指定的 VPC 必須符合下列要求和考量事項:
-
VPC 必須有足夠的 IP 地址,可用於叢集、任何節點和其他 Kubernetes 您要建立的資源。如果您想要使用的 VPC 沒有足夠的 IP 地址數量,請嘗試增加可用的 IP 地址數量。
您可以更新叢集組態來變更叢集使用的子網路和安全群組,藉此完成此操作。您可以從最新版本的 AWS CLI AWS Management Console Word、 AWS CloudFormation 和
eksctl
v0.164.0-rc.0
或更新版本更新 。這麼做才能為子網路提供更多可用 IP 地址,以成功升級叢集版本。重要
您新增的所有子網路都必須與建立叢集時最初提供的一組 AZs 相同。新的子網路必須滿足所有其他要求,例如,它們必須具有足夠的 IP 地址。
舉例來說,假設您建立叢集並指定四個子網路。依照您指定它們的順序,第一個子網路位於
us-west-2a
可用區域中,第二個和第三個子網路位於us-west-2b
可用區域中,而第四個子網路位於us-west-2c
可用區域中。如果您想要變更子網路,則必須在三個可用區域中的每個區域提供至少一個子網路,且子網路必須與原始子網路使用相同的 VPC。如果您需要的 IP 地址比 CIDR 中的 VPC 區塊多,您可以透過將其他無類別域間路由 (Word) CIDR區塊與 Word 建立關聯來新增其他 VPC 區塊。 CIDR您可以關聯私有 (RFC 1918) 和公有 (非RFC 1918) 在您建立叢集之前或之後,CIDR 會封鎖您的 VPC。您與 CIDR 相關聯的 VPC 區塊可能需要長達五小時才能識別叢集。
您可以使用傳輸閘道搭配共用服務 VPC 來節省 IP 地址使用率。如需詳細資訊,請參閱混合網路中VPCs具有共用服務和 Amazon Word Word 可路由 IP 地址保護模式的隔離 Word。 EKS VPC
-
如果您想要 Kubernetes 將
IPv6
地址指派給 Pods 和服務,將IPv6
CIDR 區塊與您的 VPC 建立關聯。如需詳細資訊,請參閱 Amazon CIDR 使用者指南中的將 IPv6VPC 區塊與 Word 建立關聯。 VPC -
VPC 必須支援
DNS
主機名稱和DNS
解析度。否則,節點無法註冊您的叢集。如需詳細資訊,請參閱 Amazon DNS 使用者指南VPC中的 VPC 屬性。 -
VPC 可能需要使用 VPC 的 AWS PrivateLink 端點。如需詳細資訊,請參閱子網需求和注意事項。
如果您使用 建立叢集 Kubernetes 1.14
或更早的版本,Amazon EKS 已將下列標籤新增至您的 VPC:
金鑰 | 值 |
---|---|
|
|
此標籤僅供 Amazon EKS 使用。您可以在不影響服務的情況下移除該標籤。它不會與版本 1.15
或更新版本的叢集搭配使用。
子網需求和注意事項
當您建立叢集時,Amazon EKS 會在您指定的子網路中建立 2–4 個彈性網路介面。這些網路介面可啟用叢集與 VPC 之間的通訊。這些網路介面也會啟用 Kubernetes 功能,例如 kubectl exec
和 kubectl logs
。每個 Amazon EKS 建立的網路介面都有文字 Amazon EKS
cluster-name
in its description.
Amazon EKS 可以在您在建立叢集時指定的任何子網路中建立其網路介面。您可以在叢集建立後,變更 Amazon EKS 在 中建立其網路介面的子網路。當您更新 Kubernetes Amazon EKS 會刪除其建立的原始網路介面,並建立新的網路介面。這些網路介面可能在與原始網路介面相同的子網中建立,或在與原始網路介面不同的子網中建立。若要控制在其中建立的子網路網路介面,可以將建立叢集時指定的子網路數量限制為僅有兩個子網路,或在建立叢集後更新子網路。
叢集的子網路要求
您建立或更新叢集時指定的子網路必須符合下列要求:
-
子網路必須至少有六個 IP 地址供 Amazon EKS 使用。但是,我們建議至少使用 16 個 IP 地址。
-
子網路必須至少位於兩個不同的可用區域。
-
子網路不能位於 AWS Outposts 或 AWS Wavelength 中。不過,如果您的 VPC 中有這些節點,則可以部署使用自我管理節點自行維護節點自我管理的節點和 Kubernetes 資源到這些子網路類型。
-
子網可以是公有子網,也可以是私有子網。不過,如果可能的話,我們建議您指定私有子網。公有子網路是具有路由表的子網路,其中包含網際網路閘道的路由,而私有子網路則是具有路由表的子網路,不包含網際網路閘道的路由。
-
子網路不能位於下列可用區域中:
AWS 區域 區域名稱 不允許的可用區域IDs us-east-1
美國東部 (維吉尼亞北部)
use1-az3
us-west-1
美國西部 (加利佛尼亞北部)
usw1-az2
ca-central-1
加拿大 (中部)
cac1-az3
依元件的 IP 地址系列用量
下表包含 Amazon EKS 每個元件所使用的 IP 地址系列。您可以使用 網路地址轉譯 (NAT) 或其他相容性系統,透過 來從 系列中的來源 IP 地址連線至這些元件 "No" 資料表項目的值。
功能可能會因 而有所不同 IP family 叢集的 (ipFamily
) 設定。此設定會變更用於 的 IP 地址類型 CIDR 封鎖 Kubernetes 指派給 Services。 設定值為 的叢集 IPv4 稱為 IPv4 叢集,以及設定值為 的叢集 IPv6 稱為 IPv6 叢集。
元件 | IPv4地址 | IPv6地址 | 雙堆疊地址 |
---|---|---|---|
EKS API 公有端點 |
是1,3 |
是1,3 |
是1,3 |
EKS API VPC |
是 |
否 |
否 |
EKS Auth API 公有端點 (EKS Pod Identity) |
是 1 |
是 1 |
是 1 |
EKS Auth API VPC 端點 (EKS Pod Identity) |
是 1 |
是 1 |
是 1 |
|
是 |
否 |
否 |
|
是 |
否 |
否 |
|
是1,4 |
是1,4 |
是4 |
|
是1,4 |
是1,4 |
是4 |
Kubernetes 叢集子網路 |
是2 |
否 |
是2 |
節點主要 IP 地址 |
是2 |
否 |
是2 |
叢集 CIDR 的範圍 Service IP 地址 |
是2 |
是2 |
否 |
Pod Word CNI 的 IP VPC 地址 |
是2 |
是2 |
否 |
IRSA OIDC 發行者URLs |
是1,3 |
是1,3 |
是1,3 |
注意
1 端點是同時具有 IPv4
和 IPv6
地址的雙堆疊。您的 外部應用程式 AWS、叢集的節點,以及叢集內的 Pod 都可以透過 IPv4
或 到達此端點IPv6
。
2 您可以選擇 中的IPv4
叢集和IPv6
叢集 IP family 當您建立叢集時叢集的 (ipFamily
) 設定,且無法變更。相反地,當您建立另一個叢集並遷移工作負載時,必須選擇不同的設定。
3 雙堆疊端點於 2024 年 8 月推出。若要將雙堆疊端點與 AWS CLI 搭配使用,請參閱 FIPS and Tools 參考指南中的雙堆疊和 Word 端點組態。 AWS SDKs 下列列出新的端點:
- EKS API 公有端點
-
eks.
region
.api.aws - IRSA OIDC 發行者URLs
-
oidc-eks.
region
.api.aws
4 雙堆疊叢集端點於 2024 年 10 月推出。EKS 會為在此日期之後建立並在叢集的 IP 系列 (ipFamily) 設定IPv6
中選取的新叢集建立下列端點:
- EKS 叢集公有/私有端點
-
eks-cluster.
region
.api.aws
節點的子網路要求
您可以部署節點和 Kubernetes 資源到您在建立叢集時指定的相同子網路。不過,這並非必要。這是因為您也可以部署節點和 Kubernetes 資源到您在建立叢集時未指定的子網路。如果您將節點部署到不同的子網路,Amazon EKS 不會在這些子網路中建立叢集網路介面。您部署節點和 的任何子網路 Kubernetes 資源必須符合下列要求:
-
子網路必須有足夠的可用 IP 地址,才能部署所有節點和 Kubernetes 資源。
-
如果您想要 Kubernetes 將
IPv6
地址指派給 Pods 和 服務,則您必須有一個與子網路相關聯的 CIDRIPv6
區塊和一個IPv4
CIDR 區塊。如需詳細資訊,請參閱 Amazon IPv6 CIDR 使用者指南中的將 Word 區塊與您的子網路建立關聯。 VPC與子網關聯的路由表必須包含傳送到IPv4
和IPv6
地址的路由。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的路由。Pod 僅指派一個IPv6
地址。不過,Amazon EKS 為您的叢集和節點建立的網路介面會指派IPv4
和IPv6
地址。 -
如果您需要從網際網路到 的傳入存取 Pods,請確保至少有一個公有子網路,其具有足夠的可用 IP 地址,以部署負載平衡器和輸入。您可以將負載平衡器部署至公有子網。負載平衡器可以將平衡負載至 Pods 在私有或公有子網路中。如果可能的話,我們建議您將節點部署至私有子網。
-
如果您計畫將節點部署到公有子網,則該子網必須自動指派
IPv4
公有地址或IPv6
地址。如果您將節點部署到具有關聯 CIDRIPv6
區塊的私有子網路,則私有子網路也必須自動指派IPv6
地址。如果您在 2020 年 3 月 26 日之後使用 為您的 Amazon VPC 叢集建立 Amazon EKS Amazon EKS AWS CloudFormation Word 範本來部署 VPC,則會啟用此設定。如果您在此日期之前使用範本來部署 VPC,或使用自己的 VPC,則必須手動啟用此設定。如需詳細資訊,請參閱 Amazon IPv4 使用者指南中的修改子網路的公有 Word 定址屬性和修改子網路的 Word 定址屬性IPv6。 VPC -
如果您部署節點的子網路是私有子網路,且其路由表不包含網路地址轉譯 (NAT) 裝置 (
IPv4
) 或輸出限定閘道 (IPv6
) 的路由,請使用 VPC 將 AWS PrivateLink 端點新增至您的 VPC。節點和 的所有 AWS 服務都需要 VPC 端點 Pods 需要與 通訊。範例包括 Amazon ECR、Elastic Load Balancing、Amazon CloudWatch、 AWS Security Token Service 和 Amazon Simple Storage Service (Amazon S3)。端點必須包含節點所在的子網。並非所有 AWS 服務都支援 VPC 端點。如需詳細資訊,請參閱什麼是 AWS PrivateLink? 以及AWS 與 AWS PrivateLink 整合的服務。如需更多 Amazon EKS 需求的清單,請參閱 部署網際網路存取受限的私有叢集。 -
如果要將負載平衡器部署到子網,則子網必須具有以下標籤:
-
私有子網路
金鑰 值 kubernetes.io/role/internal-elb
1
-
公有子網路
金鑰 值 kubernetes.io/role/elb
1
-
當 Kubernetes 建立版本 1.18
和更早版本的 叢集,Amazon EKS 將下列標籤新增至指定的所有子網路。
金鑰 | 值 |
---|---|
|
|
當您建立新的 Kubernetes 叢集,Amazon EKS 不會將標籤新增至子網路。如果標籤位於先前早於 版本的叢集所使用的子網路上1.19
,則當叢集更新至較新的版本時,不會自動從子網路中移除標籤。使用 AWS Load Balancer控制器路由網際網路流量 AWS Load Balancer 控制器的 版2.1.1
或更舊版本需要此標籤。如果您使用較新版本的 Load Balancer Controller,則您無須中斷服務便可移除標籤。
如果您使用 eksctl
或任何 Amazon VPCCloudFormation VPC Word範本來部署 EKS AWS ,則適用下列條件:
-
在 2020 年 3 月 26 日或之後:公有
IPv4
地址會由公有子網自動指派給此公有子網中已部署的新節點。 -
2020 年 3 月 26 日之前 – 公有子網路不會自動將公有
IPv4
地址指派給部署到公有子網路的新節點。
這項變更會影響部署於公有子網中的新節點群組的下列行為:
-
受管節點群組 – 如果節點群組在 2020 年 4 月 22 日或之後部署到公有子網路,則必須為公有子網路啟用公有 IP 地址的自動指派。如需詳細資訊,請參閱修改子網路的公有 IPv4 定址屬性。
-
Linux、Windows 或 Arm 自我管理節點群組 – 如果節點群組在 2020 年 3 月 26 日或之後部署到公有子網路,則必須為公有子網路啟用公有 IP 地址的自動指派。否則,必須改用公有 IP 地址啟動節點。如需詳細資訊,請參閱修改子網路的公有 IPv4 定址屬性或在執行個體啟動期間指派公有 IPv4 地址。
共用子網路需求和注意事項
您可以使用 VPC 共用與相同 AWS 組織內的其他 AWS 帳戶共用子網路。您可以在共用子網路中建立 Amazon EKS 叢集,但需考量下列因素:
-
VPC 子網路的擁有者必須與參與者帳戶共用子網路,該帳戶才能在其中建立 Amazon EKS 叢集。
-
您無法使用 VPC 的預設安全群組啟動資源,因為它屬於擁有者。此外,參與者無法啟動使用由其他參與者或擁有者所擁有之安全群組的資源。
-
在共用子網路中,參與者和擁有者會分別控制每個各別帳戶內的安全群組。子網路擁有者可以查看由參與者建立的安全群組,但無法執行任何動作。如果子網路擁有者想要移除或修改這些安全群組,建立安全群組的參與者必須採取動作。
-
如果叢集是由參與者建立,則需要考量下列事項:
-
叢集 IAM 角色和節點 IAM 角色必須在該帳戶中建立。如需詳細資訊,請參閱 Amazon EKS 叢集 IAM 角色 和 Amazon EKS 節點 IAM 角色。
-
所有節點都必須由相同的參與者建立,包括受管節點群組。
-
-
共用的 VPC 擁有者無法檢視、更新或刪除參與者在共用子網路中建立的叢集。這是每個帳戶具有不同存取權的 VPC 資源之外的。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的擁有者和參與者的責任和許可。
-
如果您使用 的自訂聯網功能 Amazon VPC CNI plugin for Kubernetes,您需要使用擁有者帳戶中列出的可用區域 ID 映射來建立每個
ENIConfig
。如需詳細資訊,請參閱部署 pods 使用自訂聯網的替代子網路。
如需 VPC 子網路共用的詳細資訊,請參閱 Amazon VPC 使用者指南中的與其他帳戶共用您的 Word。 VPC