AWS 上的 Kubernetes

开源容器的管理和编排

kuberneteslogo

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

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

Kubernetes 的工作原理

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

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

选择 Kubernetes 的原因

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

100x100_benefit_scalable_100x100_benefit_scalable

大规模运行应用程序

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

100x100_benefit_migration

无缝迁移应用程序

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

100x100_benefit_global_100x100_benefit_global

随处运行

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

100x100_benefit_compatible

添加新功能

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

在 AWS 上运行 Kubernetes

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

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

 

AWS 社区 Kubernetes 合作

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

CNI_logo_120x100

CNI 插件

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

heptio-logo-news_1_120x100

IAM 验证器

一个使用 AWS IAM 凭证验证 Kubernetes 集群的工具。

EKS_external-dns_120x100

外部 DNS

为 Kubernetes Ingresses and Services 配置 Route 53 服务发现。

Kubernetes-detoure-titre-noir_120x100

SIG AWS

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

new_product_fargate

Virtual Kubelet

实验性 – 使用 Kubernetes 控制层面在 AWS Fargate 上运行容器。

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 Container Service for Kubernetes (EKS) 是一项托管服务,它使您可以轻松在 AWS 上使用 Kubernetes,而无需安装和操作 Kubernetes 控制层面。

问:在 AWS 上如何使用 Kubernetes?

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

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

访问 Amazon Elastic Container Service for Kubernetes 页面
准备好开始构建?
创建一个 AWS 账户
还有更多问题?
联系我们