為您的 Amazon EKS 叢集建立 Amazon VPC - Amazon EKS

協助改善此頁面

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

想要為此使用者指南做出貢獻? 選擇 GitHub 上的編輯此頁面連結,該連結位於每個頁面的右窗格中。您的貢獻將幫助我們的使用者指南更適合每個人。

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

為您的 Amazon EKS 叢集建立 Amazon VPC

您可以使用 Amazon Virtual Private Cloud (Amazon VPC) 將 AWS 資源啟動至您定義的虛擬網路。此虛擬網路非常近似於您在自有資料中心內運作的傳統網路。但是,它帶來了使用 Amazon Web 服務的可擴展基礎架構的好處。部署生產 Amazon EKS 叢集前,建議您完整了解 Amazon VPC 服務。如需詳細資訊,請參閱 Amazon VPC 使用者指南

Amazon EKS 叢集、節點和 Kubernetes 資源已部署至 VPC。如果您要將現有的 VPC 與 Amazon EKS 結合使用,則該 VPC 必須符合 檢視 VPC 和子網路的 Amazon EKS 網路需求 中描述的要求。本主題說明如何使用 Amazon EKS provided AWS CloudFormation 範本建立符合 Amazon EKS 要求的 VPC。部署範本後,您可以檢視範本建立的資源,確切了解其建立的資源,以及這些資源的組態。如果您使用的是混合節點,VPC 必須在內部部署網路的路由表中具有路由。如需混合節點網路需求的詳細資訊,請參閱準備混合節點的聯網

必要條件

若要為 Amazon EKS 建立 VPC,您必須擁有建立 Amazon VPC 資源所需的 IAM 許可。這些資源包括 VPC、子網、安全群組、路由表和路由,以及網際網路和 NAT 閘道。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的使用公有子網路範例政策建立 VPC,以及》服務授權參考》中的動作完整清單。

您可以建立含公有和私有子網路、僅公有子網路或僅私有子網路的 VPC。

公有和私有子網路

此 VPC 具有兩個公用和兩個私有子網路。公有子網路的關聯路由表具有通往網際網路閘道的路由。不過,私有子網路的路由表沒有通往網際網路閘道的路由。一個公有子網路和一個私有子網路會部署到相同的可用區域。其他公有和私有子網路會部署到相同 AWS 區域中的第二個可用區域。我們建議大多數部署使用此選項。

使用此選項,您可以將節點部署到私有子網。此選項可讓 Kubernetes 將負載平衡器部署至公有子網路,以便將流量負載平衡至私有子網路中節點上執行的 Pods。公有IPv4地址會自動指派給部署到公有子網路的節點,但公有IPv4地址不會指派給部署到私有子網路的節點。

您可以將 IPv6 地址指派給公有和私有子網路中的節點。私有子網路中的節點可以與叢集和其他 AWS 服務通訊。 Pods可以使用IPv4地址,或使用在每個可用區域中部署IPv6的地址,透過 NAT 閘道與網際網路通訊。部署的安全群組包含拒絕來自叢集或節點之外的來源的所有傳入流量,但卻允許所有傳出流量的規則。子網路會加上標籤,以讓 Kubernetes 能夠將負載平衡器部署至其中。

  1. 開啟 AWS CloudFormation 主控台

  2. 從導覽列中選取支援 Amazon EKS AWS 的區域。

  3. 選擇 Create stack (建立堆疊)With new resources (standard) (使用新資源 (標準))

  4. Prerequisite - Prepare template (必要條件 - 準備範本) 下,請確定選擇 Template is ready (範本已就緒),然後在 Specify template (指定範本) 下選取 Amazon S3 URL

  5. 您可以建立僅支援 IPv4 的 VPC,或支援 IPv4IPv6 的 VPC。將下列 URL 之一貼入 Amazon S3 URL 下的文字區域並選擇 Next (下一步):

    • IPv4

https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
  • IPv4IPv6

https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-ipv6-vpc-public-private-subnets.yaml
  1. Specify stack details (識別堆疊詳細資訊) 頁面上,輸入參數,然後選擇 Next (下一步)。

    • 堆疊名稱:為您的 AWS CloudFormation 堆疊選擇堆疊名稱。例如,您可以使用在先前步驟中使用的範本名稱。此名稱僅能使用英數字元 (區分大小寫) 和連字號。它必須以英數字元開頭,且長度不可超過 100 個字元。名稱在您要建立叢集 AWS 的區域和 AWS 帳戶中必須是唯一的。

    • VpcBlock:選擇適用於您 VPC 的 IPv4 CIDR 範圍。您部署的每個節點、Pod 和負載平衡器都會從此區塊指派一個 IPv4 地址。IPv4 預設值為大多數實作提供足夠的 IP 地址,但如果沒有,則您可以進行變更。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 VPC 和子網路規模調整。您也可以在 VPC 建立後,將其他 CIDR 區塊新增至 VPC。如果您正在建立 IPv6 VPC,系統會自動從 Amazon 的 Global Unicast Address 空間為您指派 IPv6 CIDR 範圍。

    • PublicSubnet01Block:指定適用於公有子網路 1 的 IPv4 CIDR 區塊。預設值為大多數實作提供足夠的 IP 地址,但如果沒有,則可以進行變更。如果您要建立 IPv6 VPC,則會在範本中為您指定此區塊。

    • PublicSubnet02Block:指定適用於公有子網路 2 的 IPv4 CIDR 區塊。預設值為大多數實作提供足夠的 IP 地址,但如果沒有,則可以進行變更。如果您要建立 IPv6 VPC,則會在範本中為您指定此區塊。

    • PrivateSubnet01Block:指定適用於私有子網路 1 的 IPv4 CIDR 區塊。預設值為大多數實作提供足夠的 IP 地址,但如果沒有,則可以進行變更。如果您要建立 IPv6 VPC,則會在範本中為您指定此區塊。

    • PrivateSubnet02Block:指定適用於私有子網路 2 的 IPv4 CIDR 區塊。預設值為大多數實作提供足夠的 IP 地址,但如果沒有,則可以進行變更。如果您要建立 IPv6 VPC,則會在範本中為您指定此區塊。

  2. (選用) 在 Configure stack options (設定堆疊選項) 頁面上,為堆疊資源加上標籤,然後選擇 Next (下一步)。

  3. Review (檢閱) 頁面上,選擇 Create stack (建立堆疊)。

  4. 堆疊建立後,從主控台將其選取,然後選擇 Outputs (輸出)

  5. 為已建立的 VPC 記錄 VpcId。建立叢集和節點時,您需要此值。

  6. 記錄已建立的子網路的 SubnetIds (子網路識別碼),以及您是否將它們建立為公有或私有子網路的子網路。建立叢集和節點時,您至少需要其中兩個。

  7. 如果您建立了 IPv4 VPC,請跳過此步驟。如果建立 IPv6 VPC,則必須為範本建立的公有子網路啟用自動指派 IPv6 地址選項。已為私有子網路啟用該設定。若要啟用此設定,請完成下列步驟:

    1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

    2. 在左側導覽窗格中,選擇 Subnets (子網路)。

    3. 選取其中一個公有子網路 ( stack-name/SubnetPublic01 stack-name/SubnetPublic02 包含有文字),然後選擇動作編輯子網路設定

    4. 選擇啟用自動指派*IPv6地址*核取方塊,然後選擇儲存

    5. 為您的其他公有子網路再次完成上述步驟。

僅限公有子網路

此 VPC 有三個公有子網路,部署到 AWS 區域中的不同可用區域。所有節點都會自動指派公有 IPv4 地址,並且可以透過網際網路閘道傳送和接收網際網路流量。部署的安全群組會拒絕所有輸入流量,並允許所有輸出流量。子網路會加上標籤,以讓 Kubernetes 能夠將負載平衡器部署至其中。

  1. 開啟 AWS CloudFormation 主控台

  2. 從導覽列中選取支援 Amazon EKS AWS 的區域。

  3. 選擇 Create stack (建立堆疊)With new resources (standard) (使用新資源 (標準))

  4. Prepare template (準備範本) 下,請確定 Template is ready (範本已就緒),然後在 Template source (範本來源) 下選取 Amazon S3 URL

  5. 將下列 URL 貼入 Amazon S3 URL 下的文字區域並選擇 Next (下一步):

https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-sample.yaml
  1. Specify Details (指定詳細資訊) 頁面上,輸入參數,然後選擇 Next (下一步)。

    • 堆疊名稱:為您的 AWS CloudFormation 堆疊選擇堆疊名稱。例如,您可以呼叫 amazon-eks-vpc-sample。此名稱僅能使用英數字元 (區分大小寫) 和連字號。它必須以英數字元開頭,且長度不可超過 100 個字元。名稱在您要建立叢集 AWS 的區域和 AWS 帳戶中必須是唯一的。

    • VpcBlock:選擇適用於您 VPC 的 CIDR 區塊。您部署的每個節點、Pod 和負載平衡器都會從此區塊指派一個 IPv4 地址。IPv4 預設值為大多數實作提供足夠的 IP 地址,但如果沒有,則您可以進行變更。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 VPC 和子網路規模調整。您也可以在 VPC 建立後,將其他 CIDR 區塊新增至 VPC。

    • Subnet01Block:指定適用於子網路 1 的 CIDR 區塊。預設值為大多數實作提供足夠的 IP 地址,但如果沒有,則可以進行變更。

    • Subnet02Block:指定適用於子網路 2 的 CIDR 區塊。預設值為大多數實作提供足夠的 IP 地址,但如果沒有,則可以進行變更。

    • Subnet03Block:指定適用於子網路 3 的 CIDR 區塊。預設值為大多數實作提供足夠的 IP 地址,但如果沒有,則可以進行變更。

  2. (選用) 在 Options (選項) 頁面上,為堆疊資源加上標籤。選擇 Next (下一步)

  3. Review (檢閱) 頁面上,選擇 Create (建立)。

  4. 堆疊建立後,從主控台將其選取,然後選擇 Outputs (輸出)

  5. 為已建立的 VPC 記錄 VpcId。建立叢集和節點時,您需要此值。

  6. 為已建立的子網路記錄 SubnetIds。建立叢集和節點時,您至少需要其中兩個。

  7. (選用) 叢集部署到此 VPC 的任何叢集都能夠為您的 Pods 和 services 指派私有 IPv4 地址。如果要將叢集部署到此 VPC,以指派私有 IPv6 地址給您的 Pods 和 services,則必須對 VPC、子網路、路由表和安全群組進行更新。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的將IPv4 中現有的VPC 遷移至IPv6。Amazon EKS 要求您的子網路啟用 Auto-assign IPv6 地址選項。預設為停用。

僅限私有子網路

此 VPC 有三個私有子網路,部署到 AWS 區域中的不同可用區域。部署到子網路的資源無法存取網際網路,子網路中的網際網路存取資源也無法存取。範本會使用 AWS PrivateLink 為節點通常需要存取的多項 AWS 服務建立 VPC 端點。如果您的節點需要傳出網際網路存取權,您可以在建立 VPC 後的每個子網的可用區域中新增公有 NAT 閘道。建立的安全群組會拒絕所有傳入流量,部署到子網中的資源除外。安全群組亦允許所有傳出流量。子網路會加上標籤,以讓 Kubernetes 能夠將內部負載平衡器部署至其中。如果您要使用此組態建立 VPC,請參閱 部署網際網路存取受限的私有叢集 以了解其他需求和考量事項。

  1. 開啟 AWS CloudFormation 主控台

  2. 從導覽列中選取支援 Amazon EKS AWS 的區域。

  3. 選擇 Create stack (建立堆疊)With new resources (standard) (使用新資源 (標準))

  4. Prepare template (準備範本) 下,請確定 Template is ready (範本已就緒),然後在 Template source (範本來源) 下選取 Amazon S3 URL

  5. 將下列 URL 貼入 Amazon S3 URL 下的文字區域並選擇 Next (下一步):

https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-fully-private-vpc.yaml
  1. Specify Details (指定詳細資訊) 頁面上,輸入參數,然後選擇 Next (下一步)。

    • 堆疊名稱:為您的 AWS CloudFormation 堆疊選擇堆疊名稱。例如,您可以呼叫 amazon-eks-fully-private-vpc。此名稱僅能使用英數字元 (區分大小寫) 和連字號。它必須以英數字元開頭,且長度不可超過 100 個字元。名稱在您要建立叢集 AWS 的區域和 AWS 帳戶中必須是唯一的。

    • VpcBlock:選擇適用於您 VPC 的 CIDR 區塊。您部署的每個節點、Pod 和負載平衡器都會從此區塊指派一個 IPv4 地址。IPv4 預設值為大多數實作提供足夠的 IP 地址,但如果沒有,則您可以進行變更。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 VPC 和子網路規模調整。您也可以在 VPC 建立後,將其他 CIDR 區塊新增至 VPC。

    • PrivateSubnet01Block:指定適用於子網路 1 的 CIDR 區塊。預設值為大多數實作提供足夠的 IP 地址,但如果沒有,則可以進行變更。

    • PrivateSubnet02Block:指定適用於子網路 2 的 CIDR 區塊。預設值為大多數實作提供足夠的 IP 地址,但如果沒有,則可以進行變更。

    • PrivateSubnet03Block:指定適用於子網路 3 的 CIDR 區塊。預設值為大多數實作提供足夠的 IP 地址,但如果沒有,則可以進行變更。

  2. (選用) 在 Options (選項) 頁面上,為堆疊資源加上標籤。選擇 Next (下一步)

  3. Review (檢閱) 頁面上,選擇 Create (建立)。

  4. 堆疊建立後,從主控台將其選取,然後選擇 Outputs (輸出)

  5. 為已建立的 VPC 記錄 VpcId。建立叢集和節點時,您需要此值。

  6. 為已建立的子網路記錄 SubnetIds。建立叢集和節點時,您至少需要其中兩個。

  7. (選用) 叢集部署到此 VPC 的任何叢集都能夠為您的 Pods 和 services 指派私有 IPv4 地址。如果要將叢集部署到此 VPC,以指派私有 IPv6 地址給您的 Pods 和 services,則必須對 VPC、子網路、路由表和安全群組進行更新。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的將IPv4 中現有的VPC 遷移至IPv6。Amazon EKS 要求子網路啟用Auto-assign IPv6地址選項 (預設為停用)。