私有集群 - Amazon EKS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

私有集群

本主题介绍如何在没有出站 Internet 访问的情况下部署私有集群。如果您不熟悉 Amazon EKS 网络,请参阅 工作线程节点的集群联网解密Amazon EKS。

Requirements

必须满足以下要求才能在无出站 Internet 访问的私有集群中运行 Amazon EKS。

  • 容器映像必须位于或者复制到 Amazon Elastic Container Registry (Amazon ECR) 中,或复制到要拉取的 VPC 内部的注册表中。有关更多信息,请参阅创建容器映像的本地副本

  • 节点需要终端节点私有访问权限才能注册到集群终端节点。终端节点公有访问权限是可选的。有关更多信息,请参阅Amazon EKS 集群终端节点访问控制

  • 您可能需要包含在私有集群的 VPC 终端节点中找到的 VPC 终端节点。

  • 启动自管理节点时,您必须在引导参数中包含以下文本。此文本绕过 Amazon EKS 自检,不需要从 VPC 内访问 Amazon EKS API。将 <cluster-endpoint> 和 <cluster-certificate-authority> 替换为您的 Amazon EKS 集群中的值。

    --apiserver-endpoint <cluster-endpoint> --b64-cluster-ca <cluster-certificate-authority>
  • 必须从 VPC 中创建 aws-auth ConfigMap。有关创建 aws-auth ConfigMap 的更多信息,请参阅管理集群的用户或 IAM 角色

Considerations

以下是在没有出站 Internet 访问的私有集群中运行 Amazon EKS 时需要考虑的一些事项。

创建容器映像的本地副本

由于私有集群没有出站 Internet 访问,因此无法从 Docker Hub 等外部源提取容器映像。相反,容器映像必须本地复制到 Amazon ECR 或者复制到在 VPC 中可访问的备用注册表。容器映像可以从私有 VPC 外部复制到 Amazon ECR。私有集群使用 Amazon ECR VPC 终端节点访问 Amazon ECR 存储库。您必须在用于创建本地副本的工作站上安装了 Docker 和 AWS CLI。

创建容器映像的本地副本

  1. 创建 Amazon ECR 存储库。有关更多信息,请参阅创建存储库

  2. 使用 docker pull 从外部注册表中提取容器映像。

  3. 通过 docker tag,使用 Amazon ECR 注册表、存储库和可选映像标签名称组合标记您的映像。

  4. 对注册表进行身份验证。有关更多信息,请参阅注册表身份验证

  5. 使用 将映像推送到 Amazon ECRdocker push

    注意

    请确保更新资源配置以使用新映像位置。

    以下示例使用标签 ,从 Docker Hub 拉取 amazon/aws-node-termination-handlerv1.3.1-linux-amd64 映像并在 Amazon ECR 中创建本地副本。

    aws ecr create-repository --repository-name amazon/aws-node-termination-handler docker pull amazon/aws-node-termination-handler:v1.3.1-linux-amd64 docker tag amazon/aws-node-termination-handler <111122223333>.dkr.ecr.<region-code>.amazonaws.com/amazon/aws-node-termination-handler:v1.3.1-linux-amd64 aws ecr get-login-password --region <region-code> | docker login --username AWS --password-stdin <111122223333>.dkr.ecr.<region-code>.amazonaws.com docker push <111122223333>.dkr.ecr.<region-code>.amazonaws.com/amazon/aws-node-termination-handler:v1.3.1-linux-amd64

私有集群的 VPC 终端节点

可能需要以下 VPC 终端节点

  • com.amazonaws.<region>.ec2

  • com.amazonaws.<region>.ecr.api

  • com.amazonaws.<region>.ecr.dkr

  • com.amazonaws.<region>.s3 – 用于拉取容器映像

  • com.amazonaws.<region>.logs – 适用于 CloudWatch Logs

  • com.amazonaws.<region>.sts – 为服务账户使用 AWS Fargate 或 IAM 角色时

  • com.amazonaws.<region>.elasticloadbalancing – 使用 Application Load Balancer 时

  • com.amazonaws.<region>.autoscaling – 使用 Cluster Autoscaler 时

  • com.amazonaws.<region>.appmesh-envoy-management – 使用 App Mesh 时