将 Azure Stack HCI 上的 Azure Kubernetes 服务连接到 Azure Arc for Kubernetes

已完成

随着技术领域的变化,Contoso CIO 正在寻找机会来实现其运营模型的现代化。 当前的模型缺乏一致性,迫使 IT 员工处理多个不同的管理和监视产品。 这种碎片化方法的问题更大,因为 Contoso 正在准备将其部分工作负载迁移到 Azure,并将其他许多工作负载容器化。 你决定评估这些挑战在多大程度上可以通过使用 Azure Arc 来解决。

什么是 Azure Arc?

Azure Arc 包含一组技术,可简化对复杂的分布式混合环境的管理。 它提供了一个集中、可缩放、一致的多云和本地治理、管理和监视平台。

从体系结构的角度来看,Azure Arc 是一种基于云的解决方案,它依赖于 Contoso 等客户部署到其本地服务器的代理。 包含本地安装的代理的每个本地资源都以 Azure 资源的形式表示。

通过结合使用代理和基于 Azure 的资源,可以实现集中监视和管理。 基于云的资源的状态反映了本地服务器的状态,便于实现基于 Azure 的监视。 若要管理在本地服务器上运行的工作负载,则可以使用 Microsoft Azure Policy 和 Azure VM 扩展等技术。

已启用 Azure Arc 的 Kubernetes 和 Azure Stack HCI 上的 AKS 有哪些优点?

Azure Arc 支持将非 Azure 资源与 Azure 集成,从而帮助 Contoso 等公司跨本地和云资源实现一致的管理模型。 与此同时,通过将资源保留在本地,可以在转换到新的运营模型时继续使用现有的管理方法。

许多 Azure Arc 优点与资源类型无关,因为它们反映了 Azure 资源管理器的功能。 优势包括:

  • 使用 Azure 管理组、订阅、资源组和标记来组织所有组织资源的能力。
  • 一个跨多云和本地的组织资产的全面清单。
  • 通过使用 Azure 门户、Microsoft Azure CLI、Azure PowerShell 和 Azure REST API,提供 Azure 和已启用 Azure Arc 的资源的合并视图。
  • 与 Microsoft Azure Monitor 集成,实现跨本地数据中心、Azure 和其他第三方云的基于云的全面监视。

已启用 Azure Arc 的 Kubernetes 和 Azure Stack HCI 上的 AKS 也有特定的优点,例如:

  • 通过使用适用于 Kubernetes 的 Azure Policy 和集中报告策略合规性来强制执行运行时策略,这样可以在 Kubernetes 群集中强制执行 HTTPS 入口,并确保 Pod 只侦听安全端口。

The screenshot displays the Policies blade of a Kubernetes - Azure Arc resource in the Azure portal.

  • 支持使用 GitOps 对群集配置进行自动更新。 GitOps 是自动部署驻留在 Git 存储库中的代码的实践。 在此方案中,代码描述了 Kubernetes 配置的基于 YAML 的所需状态。 可以使用 Azure Policy 来强制执行基于 GitOps 的特定配置,这些配置还提供了策略合规性的集中报告。

The screenshot displays the Kubernetes - Azure Arc blade in the Azure portal.

将 Azure Stack HCI 上的 AKS 群集连接到 Azure Arc for Kubernetes

在 Azure Stack HCI 群集中,Azure Arc 代理已经包含在群集节点的操作系统内。 可以通过将 Azure Stack HCI 群集注册到 Azure Arc 来进行激活,这会自动启用 Azure 监视、支持和计费。

对于由 Azure Stack HCI 上的 AKS 托管的 Kubernetes 群集,连接到 Azure 需要将容器化代理部署到指定的群集命名空间 (azure-arc)。 代理负责维护与 Azure 的连接、收集 Azure Arc 日志和指标,以及处理配置请求。

备注

为了让载入成功完成,Azure Stack HCI 上的 AKS 群集必须包含至少一个可操作的 Linux 工作器节点池节点。

The screenshot depicts the Add a node pool blade of the Create Kubernetes Cluster wizard in Windows Admin Center.

为了简化载入过程,请使用 Windows Admin Center。 如果你遵循本模块上一单元中描述的群集创建过程,则此类载入会自动进行。 或者,也可以使用 Azure CLI 或 PowerShell 来编写此过程的脚本。

如果你选择使用脚本方法将 Azure Stack HCI 群集上的 Kubernetes 群集连接到 Azure Arc,请在连接到 Azure Stack HCI 群集和 Azure 的本地计算机上执行以下步骤序列:

  1. 安装 Azure CLI 的当前版本,其中包含已启用 Azure Arc 的 Kubernetes CLI 扩展和 Azure Stack HCI 上的 AKS PowerShell 模块。
  2. 使用 Azure CLI 登录 Microsoft Entra ID 来访问 Azure 订阅,在此订阅中你至少具有“参与者”角色,并打算注册 Kubernetes 群集。
  3. 使用 Azure CLI 来注册 Microsoft.Kubernetes 和 Microsoft.KubernetesConfiguration Azure 资源管理器资源提供程序。 这一步是实现已启用 Azure Arc 的 Kubernetes 所必需的。 对于给定订阅,使用 Azure CLI 是一次性设置。
  4. 使用 Azure CLI 来创建资源组,此资源组将在支持已启用 Azure Arc 的 Kubernetes 的 Azure 区域中托管已连接的群集资源。
  5. 使用 Azure CLI 在上一步创建的资源组中创建具有“参与者”角色的服务主体,并记录它的凭据。
  6. 使用 Azure Stack HCI 上的 AKS PowerShell 模块将 Kubernetes 群集连接到目标订阅中的 Azure Arc(使用服务主体凭据进行身份验证)。 这一步将适用于 Kubernetes 的 Azure Arc 代理部署到 azure-arc 命名空间中。

知识检查

1.

为了促进 Contoso 的卓越运营,你决定编写将 Azure Stack HCI 上的 Kubernetes 群集连接到 Azure Arc for Kubernetes 的过程的脚本。 你已经新建了一个订阅,并希望确保载入将成功完成。 在成功进行身份验证和访问目标订阅后,应该做什么?