AWS 上的 Kubernetes
开源容器的管理和编排
Kubernetes 是一款开源软件,您可以利用它大规模地部署和管理容器化应用程序。Kubernetes 管理 Amazon Elastic Compute Cloud (EC2) 计算实例的集群,并在这些实例上运行容器和执行部署、维护和扩缩的进程。借助 Kubernetes,您可以在本地和云中使用相同的工具集运行任何类型的容器化应用程序。
AWS 利用可扩展并且高度可用的虚拟机基础设施、具有社区支持的服务集成,以及经过认证的 Kubernetes 托管服务 Amazon Elastic Kubernetes Service (EKS),大幅简化了在云中运行 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 服务和功能。