了解 Azure 和 Google Cloud 上的 Kubernetes

已完成

容器是完整的可复制计算环境,可在其中安全地运行代码。 Kubernetes 旨在运行许多容器,并将其协调到可缩放且通用的系统。

在全球自行车零售商的角色中,你一直在迁移面向公众的网站以在容器中运行,然后使用 Google Kubernetes 引擎 (GKE) 协调它们。 现在,需要了解如何将该系统迁移到 Azure。

在本单元中,将比较在 Azure 和 Google Cloud 中托管 Kubernetes 的服务。

此图显示了 Microsoft 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 加载项。

了解更多信息