检查 AWS 和 Azure 中的 Kubernetes 托管
容器是完整的可移植计算环境,可在其中安全地运行代码。 Kubernetes 是最常用的系统,旨在运行许多容器并将其协调为可缩放且通用的系统。
在全球服装零售商中,你一直在迁移面向公众的网站以在容器中运行,然后使用 Amazon Elastic Kubernetes 服务(EKS)协调它们。 现在,需要了解如何将该系统迁移到 Azure。
在本单元中,你将比较在 Azure 和 Amazon Web Services(AWS)中托管 Kubernetes 的服务。
什么是 Kubernetes?
近年来,许多组织都使用称为 容器的虚拟计算资源托管其系统。 容器与虚拟机(VM)非常类似,因为它提供了一个隔离的虚拟计算机,进程可以在一致且可预测的环境中运行。 但是,由于容器与主计算机共享 OS,因此它比 VM 更小、更灵活。
正在构建在多个容器上运行的系统,每个容器都运行组件(例如微服务)的一个实例。 因此,这些容器必须通信、共享资源并响应用户。 如果需求增加,则应通过增加相关容器的实例数来响应。
Kubernetes 是一个开源容器业务流程平台,可自动部署、缩放和管理容器化应用程序。 可以使用它来管理容器群集,并提供负载均衡、服务发现、自动推出、存储业务流程和自我修复功能等功能。
Kubernetes 可以在本地或云中运行。 Azure 和 AWS 都提供 Kubernetes 托管服务:
- AWS:Amazon Elastic Kubernetes 服务(EKS)
- Azure:Azure Kubernetes 服务(AKS)
比较 Azure 和 Amazon 中的 Kubernetes
Kubernetes 托管服务(如 AKS 或 EKS)必须为托管容器提供一致的环境,以便开发人员不必将解决方案作为特定服务的目标。 因此,如果你熟悉 EKS,则应找到 AKS 的类似且舒适的设计。
但是,存在一些差异。 让我们在这里检查一下:
| 目的 | AKS | AWS EKS | 评论 |
|---|---|---|---|
| 服务集成 | 与 Azure 服务(如标识管理 Microsoft Entra ID、用于监视的 Azure Monitor 和 Azure 容器注册表(ACR)集成。 | 与其他 AWS 服务(例如 IAM(标识和访问管理)、CloudWatch(监视)和 ECR(弹性容器注册表)紧密集成。 | |
| 群集管理 | 需要手动配置来设置和管理 Kubernetes 控制平面和工作器节点。 管理功能更加自动化,包括控制平面和工作器节点的自动更新和缩放。 | AWS 处理控制平面,但需要管理工作器节点。 | |
| 网络 | 使用 Azure 虚拟网络(VNet),这些虚拟网络与 Azure 的网络服务紧密集成。 此方法简化了网络管理。 | 使用 AWS 虚拟私有云(VR)进行网络,提供灵活性,但可能需要更多配置。 | |
| 安全性 | 将 Microsoft Entra ID 用于基于角色的访问控制(RBAC)。 | 严重依赖 AWS IAM 进行身份验证和授权,这可能很复杂,但功能强大。 | |
| 日志记录和监视 | 使用 Azure Monitor 和 Log Analytics,它提供现装的集成监视和日志记录解决方案。 还可以使用 Azure 托管 Grafana 和 Prometheus。 | 使用 CloudWatch 进行日志记录和监视,这需要配置来收集和可视化日志和指标。 | |
| 更新和升级 | 提供更自动化的升级过程,包括能够升级控制平面和节点池,同时尽量缩短停机时间。 | 通常需要对群集更新和升级进行更多手动干预,尽管 AWS 提供了帮助执行这些任务的工具。 | |
| 定价 | Kubernetes 控制平面是免费的,你只需为工作器节点付费。 根据使用模式,这种安排更具成本效益。 | 控制平面和工作器节点的费用。 控制平面具有固定成本,并且工作器节点根据 EC2 实例使用情况计费。 |
了解更多信息
- 使用 Azure 门户(快速入门) 部署 Azure Kubernetes 服务 (AKS) 群集
- 部署 Azure Kubernetes 服务群集