跳至主要内容

AWS 上的 Kubernetes

开源容器的管理和编排

概述

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

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

Missing alt text value

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 部署,

可以考虑使用 Amazon EC2。在您选择的强大实例类型上预置并运行 Kubernetes。

了解详情

如果您想在无需预置或管理 Master 实例和分布式数据存储(etcd)的情况下运行 Kubernetes,

可以考虑使用 Amazon EKS。

了解详情

如果您想存储、加密和管理容器映像以实现快速部署,

可以考虑使用 Amazon ECR。

了解详情

Kubernetes 常见问题

全部打开

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

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

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

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

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

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

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