了解 Azure 和 Google Cloud 上的 Kubernetes
容器是完整的可复制计算环境,可在其中安全地运行代码。 Kubernetes 旨在运行许多容器,并将其协调到可缩放且通用的系统。
在全球自行车零售商的角色中,你一直在迁移面向公众的网站以在容器中运行,然后使用 Google Kubernetes 引擎 (GKE) 协调它们。 现在,需要了解如何将该系统迁移到 Azure。
在本单元中,将比较在 Azure 和 Google Cloud 中托管 Kubernetes 的服务。
什么是 Kubernetes?
自定义系统部署的一种常用方法是使用称为 容器的虚拟计算资源。 容器与虚拟机(VM)非常类似,因为它提供一个独立虚拟计算机,进程可以在一致且可预测的环境中运行。 但是,由于容器与主计算机共享作系统,因此它比 VM 更小、更灵活。
某些系统在多个容器上运行。 每个容器运行组件(例如微服务)的一个实例。 这些容器必须通信、共享资源并响应用户。 如果需求增加,组织应通过增加相关容器的实例数做出响应。
Kubernetes 是一个开源容器业务流程平台,可自动部署、缩放和管理容器化应用程序。 可以使用它来管理容器群集。 它提供负载均衡、服务发现、自动推出、存储业务流程和自我修复功能等功能。
Kubernetes 可以在本地或云中运行。 Azure 和 Google Cloud 都提供 Kubernetes 托管服务:
- Azure:Azure Kubernetes 服务(AKS)
- Google Cloud: Google Kubernetes 引擎 (GKE)
比较 Azure 和 Google Cloud 中的 Kubernetes
让我们将 GKE 与 AKS 进行比较,并讨论其差异:
| 目的 | AKS | GKE |
|---|---|---|
| 集成和生态系统 | AKS 与 Azure DevOps、Azure Monitor 和 Microsoft Entra ID 集成。 | GKE 与 Google Cloud 服务(如 BigQuery 和云存储)集成,用于监视和日志记录。 |
| 群集管理 | AKS 提供托管的控制平面,但需要比 GKE 更多的手动干预进行更新。 它还支持节点自动缩放,但实现略有不同。 | GKE 提供具有自动更新和缩放的完全托管的控制平面。 内置了节点自动恢复和自动缩放等功能。 |
| 网络 | AKS 依赖于具有平面网络或容器网络接口(CNI)体系结构的 Azure 虚拟网络。 它支持网络安全组和 Azure 防火墙。 | GKE 使用 Google 的全球虚拟私有云(VR)网络,该网络提供高性能和低延迟连接。 它支持本机VP和高级网络配置。 |
| 入口 | AKS 有两个选项:用于容器的应用程序网关,它是 L7 区域负载均衡器;或完全托管的 NGINX 加载项。 | GKE 使用 L7 全局负载均衡器。 |
| 标识和访问管理 (IAM) | AKS 使用 Microsoft Entra ID 在群集中进行身份验证和基于角色的访问控制,或使用经典 Kubernetes 基于角色的访问控制。 | GKE 与 Google Cloud IAM 集成,用于管理群集或 Kubernetes 基于角色的访问控制中的权限和角色。 |
| 监视和日志记录 | 可以使用 Azure Monitor 和 Log Analytics 监视 AKS。 Azure 提供针对 AKS 定制的见解和仪表板。 | 对于日志记录、监视和警报,Google Cloud 包括云监视和云日志记录。 它们与 GKE 无缝集成。 |
| 服务级别协议(SLA) | 运行时间的 SLA 适用于 AKS API 服务器。 | 运行时间的 SLA 适用于 GKE 控制平面。 |
| 部署和配置 | 可以使用 Azure CLI 命令将容器部署到 AKS,或采用 Azure 资源管理器模板或 Bicep 格式的声明性文件。 或者,支持 Kubernetes 清单。 | Google Cloud CLI 具有部署命令,也可以使用 Terraform 文件或 Kubernetes 清单。 |
| 服务网格 | GKE 使用云服务网格,该网格驻留在群集外部作为完全托管服务。 | AKS 提供 Istio 作为完全托管的 Kubernetes 加载项。 |