View a markdown version of this page

使用 AWS Outposts 在本地部署 Amazon EKS - Amazon EKS

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

使用 AWS Outposts 在本地部署 Amazon EKS

您可以使用 Amazon EKS 在 AWS Outposts 上运行本地 Kubernetes 应用程序。您可以通过以下方式在 Outpost 上部署 Amazon EKS:

  • 扩展集群 – 在 AWS 区域中运行 Kubernetes 控制面板,在您的 Outpost 上运行节点。

  • 本地集群 – 在您的 Outpost 上运行 Kubernetes 控制面板和节点。

对于这两个部署选项,Kubernetes 控制面板完全由 AWS 托管。您可以使用在云中使用的相同 Amazon EKS API、工具和控制台,在 Outpost 上创建和运行 Amazon EKS。

下图显示了这些部署选项。

Outpost 部署选项

何时使用每个部署选项

本地和扩展集群都是通用部署选项,可以用于一系列应用程序。

扩展集群让您能够节省 Outpost 上的容量,因为 Kubernetes 控制面板在父 AWS 区域中运行。如果您的 Outpost 到 AWS 区域之间拥有可靠的网络连接,则此选项非常适合。建议在设计应用程序时断开与 AWS 区域的网络连接,以确保静态稳定性。Kubernetes 处理 Kubernetes 控制面板和节点之间网络断开连接的方式可能会导致应用程序停机。有关 Kubernetes 的行为的更多信息,请参阅 Kubernetes 文档中的调度、抢占和驱逐

本地集群使您能在 Outpost 上本地运行整个 Amazon EKS 集群。此选项可以降低因临时断开与云的网络连接而造成的应用程序停机风险。光纤中断或天气事件可能会导致网络断开连接。由于整个 Amazon EKS 集群在 Outpost 上本地运行,应用程序仍然可用。您可以在断开与云的网络连接期间执行集群操作。如果需要通过网络断开连接继续运行 Kubernetes,或数据驻留法规有要求,请选择本地集群。

双本地集群实现

Amazon EKS 支持在 Outposts 机架上使用双本地集群实现。对于在 Outpost 上运行的 EC2 实例,Outpost 配置为将 Amazon EBS 或 Amazon EC2 实例存储作为实例的根卷类型。对于本地集群的控制面板,Amazon EKS 使用的实现取决于以下配置:

  • 使用 Amazon EBS 配置的 AWS Outposts。Kubernetes 控制面板将在您的 Outpost 上的 AWS 账户中运行,并在三个由 Amazon EBS 支持的 Amazon EC2 实例上堆叠了 etcd。有关更多信息,请参阅 在 AWS Outposts 上创建本地 Amazon EKS 集群以实现高可用性

  • 使用 EC2 实例存储配置的 AWS Outposts。Amazon EKS 已部署了更新后的本地集群架构。Kubernetes 控制面板将在 Outpost 上的 AWS 托管式服务账户中的 6 个 Amazon EC2 实例上运行,其中 3 个实例专用于 etcd,另外 3 个实例用于其他控制面板组件。该实现与云端 Amazon EKS 更相近,遵循 Amazon EKS Kubernetes 版本生命周期,并支持多种其他功能,例如 Amazon EKS 附加组件和基于 BottleRocket 的 Worker 节点(除 AL2023 之外)。该实现已在所有提供 AWS Outposts 的标准 AWS 区域开放。有关更多信息,请参阅 使用 EC2 实例存储配置的 AWS Outposts 上的 Amazon EKS 本地集群概述

下表总结了每种实现中的可用功能。

部署选项比较

下表比较了扩展集群实现和双本地集群实现之间的区别。

功能 扩展集群 使用 EBS 在 Outposts 上配置的本地集群 使用 EC2 实例存储在 Outposts 上配置的本地集群

Kubernetes 控制面板位置

AWS 区域

Outpost

Outpost

Kubernetes 控制面板账户

AWS 账户

您的 AWS 账户

AWS 托管式账户

Kubernetes 控制面板拓扑结构

云托管

3 个 Amazon EC2 实例,堆叠 etcd

6 个 Amazon EC2 实例(3 etcd + 3 个 API 服务器)

控制面板存储

云托管

Amazon EBS

Amazon EC2 实例存储

区域可用性

请参阅服务端点

美国东部(俄亥俄州)、美国东部(弗吉尼亚州北部)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、亚太地区(首尔)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、加拿大(中部)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、中东(巴林)和南美洲(圣保罗)。

所有提供 AWS Outposts 的商业 AWS 区域

Kubernetes 次要版本

支持的 Amazon EKS 版本

请参阅 了解适用于 AWS Outposts 的 Kubernetes 和 Amazon EKS 平台版本

支持的 Amazon EKS 版本

平台版本

请参阅 Amazon EKS 平台版本

请参阅 了解适用于 AWS Outposts 的 Kubernetes 和 Amazon EKS 平台版本

请参阅 Amazon EKS 平台版本

Outpost 外形规格

Outpost 机架

Outpost 机架

Outpost 机架

用户界面

AWS 管理控制台、AWS CLI、Amazon EKS API、eksctl、AWS CloudFormation 和 Terraform

AWS 管理控制台、AWS CLI、Amazon EKS API、eksctl、AWS CloudFormation 和 Terraform

AWS 管理控制台、AWS CLI、Amazon EKS API、AWS CloudFormation

托管策略

AmazonEKSClusterPolicyAWS托管策略:AmazonEKSServiceRolePolicy

AmazonEKSLocalOutpostClusterPolicyAWS 托管策略:AmazonEKSLocalOutpostServiceRolePolicy

AmazonEKSClusterPolicyAWS托管策略:AmazonEKSServiceRolePolicy

集群 VPC 和子网

请参阅 查看 Amazon EKS 对 VPC 和子网的联网要求

请参阅 为 AWS Outposts 上的 Amazon EKS 集群创建 VPC 和子网

请参阅 为使用 EC2 实例存储配置的 AWS Outposts 上的 Amazon EKS 本地集群创建 VPC 和子网

集群终端节点访问

公共或私有,或者两者兼而有之

仅限私有

私有或公有与私有

Kubernetes API 服务器身份验证

AWS Identity and Access Management(IAM)、OIDC 和访问条目

IAM 和 x.509 证书

IAM、OIDC、访问条目、aws-auth ConfigMap 和 x.509 证书(用于断开网络连接时)

节点类型

仅自行管理

仅自行管理

仅自行管理

节点计算类型

Amazon EC2 按需

Amazon EC2 按需

Amazon EC2 按需

节点存储类型

Amazon EBS gp2 和本地 NVMe SSD

Amazon EBS gp2 和本地 NVMe SSD

本地 NVMe SSD

Amazon EKS 优化版 AMI

Amazon Linux、Windows 和 Bottlerocket

Amazon Linux

Amazon Linux 和 Bottlerocket

IP 版本

仅限 IPv4

仅限 IPv4

仅限 IPv4

附加组件

Amazon EKS 附加组件或自行管理的附加组件

自行管理的附加组件

Amazon EKS 附加组件(已验证列表)或自行管理的附加组件

默认容器网络接口

适用于 Kubernetes 的 Amazon VPC CNI 插件

适用于 Kubernetes 的 Amazon VPC CNI 插件

适用于 Kubernetes 的 Amazon VPC CNI 插件

Kubernetes 控制面板日志

Amazon CloudWatch Logs

Amazon CloudWatch Logs

Amazon CloudWatch Logs

etcd 备份

云托管

客户自行管理(etcdctl 或 Amazon EBS 卷备份)

由 Amazon EKS 托管

负载均衡

使用 AWS Load Balancer Controller 仅预调配应用程序负载均衡器(无网络负载均衡器)

使用 AWS Load Balancer Controller 仅预调配应用程序负载均衡器(无网络负载均衡器)

使用 AWS Load Balancer Controller 仅预调配应用程序负载均衡器(无网络负载均衡器)

秘密信封加密

支持,请参阅在现有集群上使用 KMS 加密 Kubernetes 密钥

不支持

不支持

服务账户的 IAM 角色(IRSA)

支持,请参阅服务账户的 IAM 角色

不支持

支持(需要到 AWS 区域的连接;网络连接断开期间不可用)

EKS 容器组身份

支持,请参阅了解 EKS 容器组身份如何向容器组(pod)授予对 AWS 服务的访问权限

不支持

支持(需要到 AWS 区域的连接;网络连接断开期间不可用)

问题排查

请参阅 排查 Amazon EKS 集群和节点问题

请参阅 排查 AWS Outposts 上的本地 Amazon EKS 集群问题

请参阅 使用 EC2 实例存储配置的 AWS Outposts 上的 Amazon EKS 本地集群问题排查

重要
主题