檢視VPC和子EKS網路的 Amazon 聯網需求 - Amazon EKS

協助改善此頁面

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

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

檢視VPC和子EKS網路的 Amazon 聯網需求

建立叢集時,您必須指定VPC和至少兩個位於不同可用區域中的子網路。本主題提供 Amazon EKS 特定需求的概觀,以及與叢集搭配使用的VPC和子網路的考量事項。如果你沒有一個與 Amazon VPC 使用EKS,你可以創建一個使用 Amazon EKS 提供的 AWS CloudFormation 模板。如果您要在上建立本機或延伸叢集 AWS Outposts,請參閱在上為 Amazon EKS 集群創建一個VPC和子網 AWS Outposts而非本主題。

VPC需求和考量

當您建立叢集時,您指定VPC的叢集必須符合下列需求和考量:

  • VPC必須有足夠數量的 IP 位址可供叢集、任何節點以及您要建立的其他Kubernetes資源使用。如果您VPC要使用的 IP 位址數量不足,請嘗試增加可用 IP 位址的數量。

    您可以更新叢集組態來變更叢集使用的子網路和安全群組,藉此完成此操作。您可以從 AWS Management Console、、和版本的最新版本v0.164.0-rc.0或更新eksctl版本進行更新。 AWS CLI AWS CloudFormation這麼做才能為子網路提供更多可用 IP 地址,以成功升級叢集版本。

    重要

    您新增的所有子網路必須與建立叢集時原先提供的AZs子網路集合相同。新的子網路必須滿足所有其他要求,例如,它們必須具有足夠的 IP 地址。

    舉例來說,假設您建立叢集並指定四個子網路。依照您指定它們的順序,第一個子網路位於 us-west-2a 可用區域中,第二個和第三個子網路位於 us-west-2b 可用區域中,而第四個子網路位於 us-west-2c 可用區域中。如果您想要變更子網路,則必須在三個可用區域中的每個子網路中提供至少一個子網路,而且子網路必須與原始子網路位於VPC相同的子網路中。

    如果您需要的 IP 位址多於其中的CIDR區塊,VPC您可以將其他CIDR無類別網域間路由 (CIDR) 區塊與. VPC 您可以在建立叢集之前或之後,將 private (RFC 1918RFC 1918) 和公用 VPC (非) CIDR 區塊關聯到您的區塊。叢集最多可能需要五個小時才能辨識您與 a 關聯VPC的CIDR區塊。

    您可以將傳輸閘道與共用服務VPC搭配使用,以節省 IP 位址的使用率。如需詳細資訊,請參閱VPCs與共用服務隔離混合式網路中的 Amazon EKS VPC 可路由 IP 地址保護模式

  • 如果您Kubernetes要將IPv6地址指派給Pods和服務,請將IPv6CIDR區塊與您的VPC. 如需詳細資訊,請參閱 Amazon VPC 使用者指南VPC中IPv6CIDR區塊與您的區塊建立關聯。

  • VPC必須具有DNS主機名稱和DNS解析度支援。否則,節點無法註冊至您的叢集。如需詳細資訊,請參閱 Amazon VPC 使用者指南VPC中的DNS屬性

  • VPC可能需要VPC端點使用 AWS PrivateLink. 如需詳細資訊,請參閱子網需求和注意事項

如果您使用Kubernetes1.14或更早版本建立叢集,Amazon 會將以下標籤EKS新增至您的VPC:

金鑰
kubernetes.io/cluster/my-cluster owned

此標籤僅由 Amazon 使用EKS。您可以在不影響服務的情況下移除該標籤。其不與版本 1.15 或更新版本的叢集一起使用。

子網需求和注意事項

建立叢集時,Amazon EKS 會在您指定的子網路中建立 2-4 個彈性網路界面。這些網路介面可讓您的叢集與VPC. 這些網路介面還啟用了 Kubernetes 的功能,例如 kubectl execkubectl logs。Amazon EKS 創建的每個網絡界面在其描述Amazon EKS cluster-name中都有文本。

Amazon EKS 可以在您建立叢集時指定的任何子網路中建立其網路界面。您可以在叢集建立之後變更 Amazon EKS 建立其網路界面的子網路。當您更新叢集的Kubernetes版本時,Amazon 會EKS刪除其建立的原始網路界面,並建立新的網路界面。這些網路介面可能在與原始網路介面相同的子網中建立,或在與原始網路介面不同的子網中建立。若要控制在其中建立的子網路網路介面,可以將建立叢集時指定的子網路數量限制為僅有兩個子網路,或在建立叢集後更新子網路。

叢集的子網路要求

您建立或更新叢集時指定的子網路必須符合下列要求:

  • 每個子網路必須至少有六個 IP 位址,以供 Amazon EKS 使用。但是,我們建議至少使用 16 個 IP 地址。

  • 子網路不能位於 AWS Outposts AWS Wavelength、或 AWS 本機區域中。但是,如果您有它們VPC,則可以將自我管理的節點和Kubernetes資源部署到這些類型的子網路。

  • 子網可以是公有子網,也可以是私有子網。不過,如果可能的話,我們建議您指定私有子網。公有子網路是一種子網路,其路由表包含到網際網路閘道的路由,而私有子網路是一種子網路,其具有不包括到網際網路閘道路由的路由表。

  • 子網路不能位於下列可用區域:

    AWS 區域 區域名稱 不允許的可用區域 IDs
    us-east-1 美國東部 (維吉尼亞北部) use1-az3
    us-west-1 美國西部 (加利佛尼亞北部) usw1-az2
    ca-central-1 加拿大 (中部) cac1-az3

依元件分類的 IP 位址系列使用

下表包含 Amazon 每個組件使用的 IP 地址系列EKS。您可以使用網路位址轉譯 (NAT) 或其他相容性系統,從具有表格項目"No"值的系列中的來源 IP 位址連線到這些元件。

功能可能會因叢集的 IP family (ipFamily) 設定而有所不同。此設定會變更用於Kubernetes指派給的CIDR區塊的 IP 位址類型Services。設定值為的叢集稱IPv4為IPv4 cluster,而設定值為的叢集IPv6則稱為IPv6 cluster。

元件 IPv4僅限位址 IPv6僅限位址 雙堆疊位址
EKSAPI公共端點
EKSAPIVPC端點
EKS驗證API公用端點 (EKS網繭身分識別) 1 1 1
EKS驗證APIVPC端點 (EKS網繭身分識別) 1 1 1
Kubernetes叢集公用端點
Kubernetes叢集私有端點 2 2
Kubernetes叢集子網路 2 2
節點主要 IP 位址 2 2
ServiceIP 位址的叢集CIDR範圍 2 2
Pod來自的 IP 位址 VPC CNI 2 2
IRSAOIDC發行人 URLs
注意

1 端點是具有IPv4IPv6位址的雙堆疊。您在外部的應用程式 AWS、叢集節點以及叢集內的網繭都可以透過IPv4或連線到達此端點IPv6

2 當您建立IPv4叢集時,您可以在IPv6叢集的 IP family (ipFamily) 設定中選擇叢集和叢集,且無法變更。相反地,當您建立另一個叢集並移轉工作負載時,您必須選擇不同的設定。

3 雙堆疊端點於 2024 年 8 月推出。若要搭配使用雙堆疊端點 AWS CLI,請參閱《工具參考指南》中的雙堆疊AWS SDKs和FIPS端點組態。下面列出了新的端點:

EKSAPI公共端點

eks.region.api.aws

IRSAOIDC發行人 URLs

oidc-eks.region.api.aws

節點的子網路要求

您可以將節點和 Kubernetes 資源部署到您建立叢集時指定的相同子網路。不過,這不是必要的。這是因為您還可以將節點和 Kubernetes 資源部署至建立叢集時未指定的子網路。如果您將節點部署到不同的子網路,Amazon EKS 不會在這些子網路中建立叢集網路界面。您部署節點和 Kubernetes 資源的任何子網路必須符合以下要求:

  • 子網路必須具有足夠的可用 IP 地址,以便將所有節點和 Kubernetes 資源部署至其中。

  • 如果您想Kubernetes要將IPv6位址指派給Pods和服務,則必須有一個IPv6CIDR區塊和一個與子網路相關聯的IPv4CIDR區塊。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的將IPv6CIDR區塊與子網路建立關聯。與子網關聯的路由表必須包含傳送到 IPv4IPv6 地址的路由。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的路由。Pod 僅指派一個 IPv6 地址。然而,Amazon 為您的叢集和節點EKS建立的網路界面會被分配一個IPv4和一個IPv6地址。

  • 如果您需要從網際網路對您的 Pods 進行傳入存取,請確保至少有一個具有足夠可用 IP 地址的公有子網路來為其部署負載平衡器和傳入。您可以將負載平衡器部署至公有子網。負載均衡器可以對私有子網路或公有子網路中的 Pods 進行負載平衡。如果可能的話,我們建議您將節點部署至私有子網。

  • 如果您計畫將節點部署到公有子網路,則該子網路必須自動指派 IPv4 公有地址IPv6 地址。如果您將節點部署到具有關聯IPv6CIDR區塊的私有子網路,則私有子網路也必須自動指派IPv6位址。如果您在 2020 年 3 月 26 日VPC之後使用 Amazon EKS AWS CloudFormation 範本進行部署,則會啟用此設定。如果您VPC在此日期之前使用範本部署,或者您使用自己的範本VPC,則必須手動啟用此設定。如需詳細資訊,請參閱 Amazon VPC 使用者指南中修改子網路的公IPv4IPv6定址屬性和修改子網路的位址屬性。

  • 如果您部署節點的子網路是私有子網路,且其路由表不包含網路位址轉譯 (NAT) 裝置 (IPv4) 或僅限輸出閘道 (IPv6) 的路由,請使用您 AWS PrivateLink 的. VPC VPC VPC所有節點都需要端點 AWS 服務 ,並且Pods需要與之通信。範例包括 Amazon ECR、Elastic Load Balancing CloudWatch AWS Security Token Service、Amazon 和亞馬遜簡單儲存服務 (Amazon S3)。端點必須包含節點所在的子網。並非所有VPC端點都 AWS 服務 支援。如需詳細資訊,請參閱什麼是 AWS PrivateLink?AWS 及與 AWS PrivateLink. 如需更多 Amazon EKS 要求的清單,請參閱部署網際網路存取受限的私有叢集

  • 如果要將負載平衡器部署到子網,則子網必須具有以下標籤:

    • 私有子網路

      金鑰
      kubernetes.io/role/internal-elb 1
    • 公有子網路

      金鑰
      kubernetes.io/role/elb 1

建立版本1.18和更早版本的Kubernetes叢集時,Amazon 會將下列標籤EKS新增至指定的所有子網路。

金鑰
kubernetes.io/cluster/my-cluster shared

當您現在建立新Kubernetes叢集時,Amazon EKS 不會將標籤新增至您的子網路。如果叢集所使用的子網路具有標籤,而且該叢集此前的版本早於 1.19,則當叢集更新為較新版本時,系統不會自動從子網路移除該標籤。2.1.1 版或更早版本的 AWS Load Balancer Controller 需要此標籤。如果您使用較新版本的 Load Balancer Controller,則您無須中斷服務便可移除標籤。

如果您使用eksctl或任何一個 VPC Amazon EKS AWS CloudFormation VPC 範本部署,則適用以下條件:

  • 在 2020 年 3 月 26 日或之後:公有 IPv4 地址會由公有子網自動指派給此公有子網中已部署的新節點。

  • 在 2020 年 3 月 26 日之前:公有 IPv4 地址不會由公有子網自動指派給此公有子網路已部署的新節點。

這項變更會影響部署於公有子網中的新節點群組的下列行為:

共用子網路需求和注意事項

您可以使用VPC共用功能與其他 AWS 帳戶共用子網路。 AWS Organizations您可以在共用子網路中建立 Amazon EKS 叢集,並考量下列事項:

  • VPC子網路的擁有者必須與參與者帳戶共用子網路,該帳戶才能在其中建立 Amazon EKS 叢集。

  • 您無法使用的預設安全性群組啟動資源,VPC因為它屬於擁有者。此外,參與者無法使用其他參與者或擁有者所擁有的安全性群組來啟動資源。

  • 在共用子網路中,參與者和擁有者會分別控制每個各別帳戶內的安全群組。子網路擁有者可以查看由參與者建立的安全群組,但無法執行任何動作。如果子網路擁有者想要移除或修改這些安全群組,建立安全群組的參與者必須採取動作。

  • 如果叢集是由參與者建立,則需要考量下列事項:

  • 共用VPC擁有者無法檢視、更新或刪除參與者在共用子網路中建立的叢集。這是每個帳戶具有不同存取權限的VPC資源之外。如需詳細資訊,請參閱 Amazon VPC 使用者指南的擁有者和參與者的責任和許可。

  • 如果您使用 Amazon VPC CNI plugin for Kubernetes 的自訂網路功能,您必須使用擁有者帳戶中列出的可用區域 ID 映射來建立每個 ENIConfig。如需詳細資訊,請參閱pods在具有自訂網路的替代子網路中部署

如需VPC子網路共用的詳細資訊,請參閱 Amazon VPC 使用者指南中的「VPC與其他帳戶共用您的帳戶」。