協助改善此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
想要為此使用者指南做出貢獻? 選擇 GitHub 上的編輯此頁面連結,該連結位於每個頁面的右窗格中。您的貢獻將幫助我們的使用者指南更適合每個人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
部署網際網路存取受限的私有叢集
本主題說明如何部署部署在 AWS 雲端上,但沒有傳出網際網路存取權的 Amazon EKS 叢集。如果您在 AWS Outposts 上有本機叢集,請參閱 在 AWS Outposts 上建立 Amazon Linux 節點,而非本主題。
如果您不熟悉 Amazon EKS 聯網,請參閱 Amazon EKS 工作者節點的取消迷宮叢集聯網
-
您的叢集必須從 VPC 中的容器登錄檔提取映像。您可以在 VPC 中建立 Amazon Elastic Container Registry,並將容器映像複製到其中,以供節點提取。如需詳細資訊,請參閱將容器映像從一個儲存庫複製到另一個儲存庫。
-
您的叢集必須啟用端點私有存取。這對節點向叢集端點註冊而言是必要的。端點公有存取權限並非必要。如需詳細資訊,請參閱控制叢集 API 伺服器端點的網路存取。
-
自我管理Linux的Windows節點必須在啟動之前包含下列引導引數。這些引數會繞過 Amazon EKS 自我檢查,不需要從 VPC 內存取 Amazon EKS API。
-
使用以下命令判斷叢集端點的值。使用您叢集的名稱取代
my-cluster
。aws eks describe-cluster --name my-cluster --query cluster.endpoint --output text
範例輸出如下。
https://EXAMPLE108C897D9B2F1B21D5EXAMPLE.sk1.region-code.eks.amazonaws.com
-
使用以下命令判斷叢集憑證授權機構的值。使用您叢集的名稱取代
my-cluster
。aws eks describe-cluster --name my-cluster --query cluster.certificateAuthority --output text
傳回的輸出是長字串。
-
將下列命令中的
cluster-endpoint
和certificate-authority
取代為先前命令輸出中傳回的值。如需有關在啟動自我管理節點時指定引導參數的詳細資訊,請參閱 建立自我管理的 Amazon Linux 節點 和 建立自我管理Microsoft Windows節點。-
適用於 Linux 節點:
--apiserver-endpoint cluster-endpoint --b64-cluster-ca certificate-authority
如需其他引數,請參閱 GitHub 上的 Bootstrap 指令碼
。 -
適用於 Windows 節點:
注意
如果您使用的是自訂服務 CIDR,則需要使用
-ServiceCIDR
參數來指定它。否則,叢集中 Pods 的 DNS 解析將會失敗。-APIServerEndpoint cluster-endpoint -Base64ClusterCA certificate-authority
如需其他引數,請參閱 引導指令碼組態參數。
-
-
-
叢集的
aws-auth
ConfigMap
必須在 VPC 內建立。若要進一步了解如何建立項目並將項目新增至aws-auth
ConfigMap
,請在終端機中輸入eksctl create iamidentitymapping --help
。如果您的伺服器上ConfigMap
不存在 ,eksctl
會在您使用 命令新增身分映射時建立它。 -
Pods 為服務帳戶設定了 IAM 角色,可從 AWS 安全字符服務 (AWS STS) API 呼叫取得憑證。如果沒有傳出網際網路存取,您必須在 VPC 中建立和使用 AWS STS VPC 端點。大多數 AWS
v1
SDKs 預設使用全域 AWS STS 端點 (sts.amazonaws.com
),這不使用 AWS STS VPC 端點。若要使用 AWS STS VPC 端點,您可能需要設定 SDK 以使用區域 AWS STS 端點 (sts.
)。如需詳細資訊,請參閱設定服務帳戶 AWS 的安全權杖服務端點。region-code
.amazonaws.com -
叢集的 VPC 子網路必須具有 VPC 介面端點,以供Pods您需要存取的任何 AWS 服務使用。如需詳細資訊,請參閱使用介面 VPC 端點存取 AWS 服務。下表列出了一些常用的服務和端點。如需端點的完整清單,請參閱 AWS PrivateLink AWSAWS PrivateLink 整合的服務。
我們建議您為 VPC 端點啟用私有 DNS 名稱,這樣工作負載就可以繼續使用公有 AWS 服務端點,而不會發生問題。
服務 端點 Amazon EC2
com.amazonaws.
region-code
.ec2Amazon Elastic Container Registry (用於提取容器映像)
com.amazonaws.
region-code
.ecr.api、com.amazonaws.region-code
.ecr.dkr 和 com.amazonaws.region-code
.s3Application Load Balancer 與 Network Load Balancer
com.amazonaws.
region-code
.elasticloadbalancingAWS X-Ray
com.amazonaws.
region-code
.xrayAmazon CloudWatch Logs
com.amazonaws.
region-code
.logsAWS Security Token Service (在服務帳戶使用 IAM 角色時需要)
com.amazonaws.
region-code
.sts -
任何自我管理節點都必須部署至具有您所需 VPC 介面端點的子網路。如果您建立受管節點群組,VPC 介面端點安全群組必須允許子網路的 CIDR,或者您必須將建立的節點安全群組新增至 VPC 介面端點安全群組。
-
如果您Pods使用 Amazon EFS 磁碟區,則在部署具有 Amazon EFS 的儲存彈性檔案系統之前,必須變更驅動程式的 kustomization.yaml
檔案,以將容器映像設定為使用與 Amazon EKS 叢集相同的 AWS 區域。 -
您可以使用AWS Load Balancer控制器,將 AWS Application Load Balancer (ALB) 和 Network Load Balancer 部署到您的私有叢集。部署時,您應使用命令列旗標
將 enable-shield
、enable-waf
和enable-wafv2
設定為 false。不支援使用來自輸入物件的主機名稱進行憑證探索。這是因為控制器需要連線到沒有 VPC 介面端點的 AWS Certificate Manager。 控制器支援具有 IP 目標的 Network Load Balancer,這些目標與 Fargate 一起使用。如需詳細資訊,請參閱 使用 路由應用程式和HTTP流量 Application Load Balancers 和 建立 Network Load Balancer。
-
支援 Cluster Autoscaler
。部署 Cluster Autoscaler Pods 時,請確保命令列包含 --aws-use-static-instance-list=true
。如需詳細資訊,請參閱 GitHub 上的使用靜態執行個體清單。工作者節點 VPC 也必須包含 AWS STS VPC 端點和自動擴展 VPC 端點。 -
有些容器軟體產品會使用 API 呼叫來存取 AWS Marketplace Metering Service 來監控用量。私有叢集不允許這些呼叫,因此您無法在私有叢集中使用這些容器類型。