AWS 上的 Kubernetes

开源容器的管理和编排

Kubernetes 是一款开源软件,您可以利用它大规模地部署和管理容器化应用程序。Kubernetes 管理 Amazon Elastic Compute Cloud (EC2) 计算实例的集群,并在这些实例上运行容器和执行部署、维护和扩缩的进程。借助 Kubernetes,您可以在本地和云中使用相同的工具集运行任何类型的容器化应用程序。

AWS 利用可扩展并且高度可用的虚拟机基础设施、具有社区支持的服务集成,以及经过认证的 Kubernetes 托管服务 Amazon Elastic Kubernetes Service (EKS),大幅简化了在云中运行 Kubernetes 的过程。

Kubernetes

Kubernetes 的工作原理

Kubernetes 的具体工作原理就是根据可用计算资源和每个容器的资源要求,管理计算实例集群,并调度要在集群上运行的容器。在逻辑分组中运行的容器被称为 Pod,您可以将一个或多个容器作为一个 Pod 进行运行和扩展。

Kubernetes 控制层面软件确定何时何地运行 Pod、管理流量路由选择,以及根据利用率或您定义的其他指标扩展 Pod。Kubernetes 可以根据资源需求自动在集群上启动 Pod,并在 Pod 或它们运行的实例出现故障时自动重启 Pod。每个 Pod 都会获得一个 IP 地址和一个 DNS 名称,Kubernetes 用它们来连接您的服务和外部流量。

选择 Kubernetes 的原因

由于 Kubernetes 是一个开源项目,您可以用它在任何地方运行您的容器化应用程序,而无需更换操作工具。Kubernetes 由志愿者组成的大型社区进行维护,并且在不断改进。此外,其他很多开源项目和供应商都在构建和维护与 Kubernetes 兼容的软件,您可以利用这些软件改进并扩展您的应用程序架构。

大规模运行应用程序

大规模运行应用程序

Kubernetes 允许您定义复杂的容器化应用程序,并能跨服务器集群大规模运行这些应用程序。

无缝迁移应用程序

无缝迁移应用程序

借助 Kubernetes,可以使用相同的操作工具将容器化应用程序从本地开发机器无缝迁移到云中的生产部署。

随处运行

随处运行

在 AWS 上运行高度可用且可扩展的 Kubernetes 集群,同时保持与本地运行的 Kubernetes 部署完全兼容。

添加新功能

添加新功能

Kubernetes 是一个开源项目,因此很容易为其添加新功能。由开发人员和企业组成的大型社区积极构建可以让 Kubernetes 实现更多功能的扩展、集成和插件。

在 AWS 上运行 Kubernetes

AWS 使运行 Kubernetes 变得非常简单。 您可以选择使用 Amazon EC2 自行管理 Kubernetes 基础设施,或使用 Amazon EKS 获取一个自动预置的托管 Kubernetes 控制层面。无论采用哪种方式,您都可以获得强大并且具有社区支持的 AWS 服务集成,如 Amazon Virtual Private Cloud (VPC)、AWS Identity and Access Management (IAM)、服务发现,以及 AWS 安全性、可扩展性和高可用性。

如果要...
可考虑使用
完全托管您的 Kubernetes 部署。在您选择的强大实例类型上预置并运行 Kubernetes。 Amazon EC2
运行 Kubernetes,而无需预置或管理 Master 实例和分布式数据存储 (etcd)。
Amazon EKS
存储、加密和管理容器映像以实现快速部署。
Amazon ECR

 

AWS 社区 Kubernetes 合作

AWS 积极与 Kubernetes 社区合作,包括为 Kubernetes 代码库做贡献,从而帮助 Kubernetes 用户充分利用 AWS 服务和功能。

CNI 插件

CNI 插件

在 AWS 上使用弹性网络接口在 Kubernetes 中进行 Pod 网络通信。

CDK8S

CDK8s

Cdk8s 使您能够使用代码定义 Kubernetes 应用程序。

外部 DNS

外部 DNS

为 Kubernetes Ingresses and Services 配置 Route 53 Service Discovery。

Karpenter

Karpenter

任何 Kubernetes 集群的即时节点。

Kubernetes

SIG AWS

社区主导的特别兴趣小组,专注于 Kubernetes API 的 AWS 集成。

TorchServe

TorchServe

用于部署经过训练的 ML 模型的 PyTorch 模型服务框架。

Kubernetes 常见问题

问:什么是 Kubernetes 集群?

Kubernetes 集群是一个运行容器的 EC2 计算实例的逻辑分组。一个集群包括控制层面(控制容器何时何地如何运行的实例)和数据层面(容器运行的实例)。您必须在使用 Kubernetes 运行容器或服务之前定义一个集群。

问:什么是 Kubernetes 节点?

Kubernetes 节点是一个单一计算实例(虚拟机),它是 Kubernetes 集群的一部分。共有两种类型的实例:Master 和 Worker。Master 托管 Kubernetes API 服务器,并控制何时何地如何运行您的容器。Worker 是您的容器实际运行和处理数据的计算实例。

问:什么是 Kubernetes Pod?

Kubernetes Pod 是 Kubernetes 在一个计算实例上运行容器的方式,它包括容器以及规定容器运行、联网和存储方式的参数。Pod 可以是一个单一容器,也可以是一起运行的多个容器。如果您通常运行单一容器,则您可以考虑将一个 Pod 作为运行容器。

问:什么是 etcd?

etcd 是分布式键值存储,它使您可以跨分布式机器集群进行数据存储和共享。Kubernetes 使用 etcd 存储您的集群数据,并跨 Kubernetes 控制层面共享数据。

问:AWS 是否支持 Kubernetes?

AWS 使运行 Kubernetes 变得非常简单。事实上,根据云原生计算基金会 (CNCF) 提供的数据,AWS 拥有最多在云环境中运行 Kubernetes 的客户,其中在 AWS 上运行 Kubernetes 部署的占大多数。AWS 与 Kubernetes 社区合作并积极为其做出贡献,以使客户在 AWS 上运行 Kubernetes 变得简单易行。

AWS 提供的 Amazon Elastic Kubernetes Service (EKS) 是一项托管服务,它使您可以轻松在 AWS 上使用 Kubernetes,而无需安装和操作 Kubernetes 控制层面。

问:如何在 AWS 上使用 Kubernetes?

在 AWS 上有两种使用 Kubernetes 的方式:在 Amazon EC2 虚拟机实例上自行运行,或使用 Amazon EKS 服务。您可以在我们的 Github 研讨会中了解更多有关在 EC2 上自行运行 Kubernetes 的信息。您可以在产品页面了解更多有关使用 Amazon EKS 的信息。

了解有关在 AWS 上使用 Kubernetes 的更多信息

访问 Amazon Elastic Kubernetes Service 页面

了解有关 AWS 上的容器的更多信息

访问容器页面
准备好开始构建了吗?
创建 AWS 账户
还有更多问题?
联系我们