協助改善此頁面
想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
部署網際網路存取受限的私有叢集
本主題說明如何部署在上部署但無法存取 AWS 雲端輸出網際網路的 Amazon EKS 叢集。如果您已開啟本機叢集 AWS Outposts,請參閱在 AWS Outposts 上創建 Amazon Linux 節點,而非本主題。
如果您不熟悉 Amazon EKS 聯網,請參閱 Amazon 工作者節點的消除叢集聯網
-
您的叢集必須從您的VPC. 您可以在自己的區域中建立 Amazon Elastic 容器登錄,VPC然後將容器映像複製到其中,以供節點提取。如需詳細資訊,請參閱將容器映像從一個儲存庫複製到另一個儲存庫。
-
您的叢集必須啟用端點私有存取。這對節點向叢集端點註冊而言是必要的。端點公有存取權限並非必要。如需詳細資訊,請參閱控制對叢集API伺服器端點的網路存取。
-
自我管理 Linux 和 Windows 節點在啟動之前必須包含下列引導引數。這些參數繞過 Amazon 內EKS省,不需要EKSAPI從. VPC
-
使用下列命令判斷叢集端點的值。Replace (取代)
my-cluster
使用您的群集的名稱。aws eks describe-cluster --name
my-cluster
--query cluster.endpoint --output text範例輸出如下。
https://
EXAMPLE108C897D9B2F1B21D5EXAMPLE
.sk1
.region-code
.eks.amazonaws.com -
使用下列命令判斷叢集憑證授權單位的值。Replace (取代)
my-cluster
使用您的群集的名稱。aws eks describe-cluster --name
my-cluster
--query cluster.certificateAuthority --output text傳回的輸出是長字串。
-
將下列命令中的
和cluster-endpoint
取代為先前命令輸出中傳回的值。如需有關在啟動自我管理節點時指定引導參數的詳細資訊,請參閱 建立自我管理的 Amazon Linux 節點 和 建立自我管理節Microsoft Windows點。certificate-authority
-
適用於 Linux 節點:
--apiserver-endpoint
cluster-endpoint
--b64-cluster-cacertificate-authority
如需其他引數,請參閱 GitHub 上的 Bootstrap 指令碼
。 -
適用於 Windows 節點:
注意
如果您使用的是自訂服務CIDR,則需要使用
-ServiceCIDR
參數來指定它。否則,叢集Pods中的DNS解析將會失敗。-APIServerEndpoint
cluster-endpoint
-Base64ClusterCAcertificate-authority
如需其他引數,請參閱 引導指令碼組態參數。
-
-
您的叢集
aws-auth
ConfigMap
必須從您的VPC. 若要進一步了解如何建立項目並將項目新增至aws-auth
ConfigMap
,請在終端機中輸入eksctl create iamidentitymapping --help
。如果您的伺服器上不存在ConfigMap
,則eksctl
會在您使用命令新增身分映射時建立它。 -
Pods設定服務帳戶的IAM角色會從 AWS Security Token Service (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 Security Token Service 端點。region-code
.amazonaws.com
-
您叢集的VPC子網路必須具有任何您Pods需要存取 AWS 服務 的VPC介面端點。如需詳細資訊,請參閱使用介面VPC端點存取 AWS 服務。下表列出了一些常用的服務和端點。如需完整的端點清單,請參閱《AWS PrivateLink 指南》https://docs.aws.amazon.com/vpc/latest/privatelink/中的與 AWS PrivateLink整合的AWS 服務。
服務 端點 Amazon EC2 COM. 亞馬遜。 region-code
.ec2Amazon Elastic Container Registry (用於提取容器映像) COM. 亞馬遜。 region-code
.ecr.api, 喜歡.region-code
.ecr.dkr, 和喜歡.region-code
.S3Application Load Balancer 與 Network Load Balancer COM. 亞馬遜。 region-code
. 彈性負載平衡AWS X-Ray COM. 亞馬遜。 region-code
.xrayAmazon CloudWatch 日誌 COM. 亞馬遜。 region-code
. 日誌AWS Security Token Service (使用服務帳戶的IAM角色時需要) COM. 亞馬遜。 region-code
. STS
考量事項
-
任何自我管理的節點都必須部署到具有您所需VPC介面端點的子網路。如果您建立受管節點群組,VPC介面端點安全性群組必須允許子網路使CIDR用,或者您必須將建立的節點安全性群組新增至VPC介面端點安全性群組。
-
如果您Pods使用 Amazon EFS 卷,則在部署之前透過 Amazon 儲存彈性檔案系統 EFS,必須更改驅動程序的 kustomization.yaml
文件,以將容器映像設置為與 Amazon 集群相同。 AWS 區域 EKS -
您可以使用AWS Load Balancer Controller將 AWS 應用程式負載平衡器 (ALB) 和網路負載平衡器部署到私人叢集。部署時,您應使用命令列旗標
將 enable-shield
、enable-waf
和enable-wafv2
設定為 false。不支援透過傳入物件的主機名稱進行憑證探索。這是因為控制器需要到達 AWS Certificate Manager,它沒有VPC接口端點。 控制器支援具有 IP 目標的 Network Load Balancer,這些目標與 Fargate 一起使用。如需詳細資訊,請參閱 路線應用和HTTP交通 Application Load Balancers 和 建立 Network Load Balancer。
-
支援 Cluster Autoscaler。部署 Cluster Autoscaler Pods 時,請確保命令列包含
--aws-use-static-instance-list=true
。如需詳細資訊,請參閱 GitHub 上的使用靜態執行個體清單。Worker 節點還VPC必須包含 AWS STS VPC端點和自動調度資源VPC端點。 -
某些容器軟體產品會使用存取的API呼叫 AWS Marketplace Metering Service 來監視使用情況。私有叢集不允許這些呼叫,因此您無法將這些容器類型用於私有叢集。