你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

部署 Azure Stack Edge 上的 Azure Kubernetes 服务

适用范围:适用于 Pro - GPU SKUAzure Stack Edge Pro - GPU对于 Pro 2 SKU 是必需的Azure Stack Edge Pro 2对于 Pro R SKU 是必需的Azure Stack Edge Pro R

注意

仅当你是 SAP 或 PMEC 客户时,才使用此过程。

本文介绍如何在 Azure Stack Edge 设备上部署和管理 Azure Kubernetes 服务 (AKS)。 还可以使用本文创建永久性卷,使用 GitOps 管理已启用 Arc 的 Kubernetes 群集,以及删除 AKS 和 Azure Arc。

本文的目标受众是熟悉在 Azure Stack Edge 设备上设置和部署工作负荷的 IT 管理员。

关于 Azure Stack Edge 上的 Azure Kubernetes 服务

Azure Stack Edge 是一种支持 AI 的边缘计算设备,具有高性能网络 I/O 功能。 在 Azure Stack Edge 设备上配置计算后,可以使用 Azure 门户部署 Azure Kubernetes 服务,包括基础结构 VM。 然后,AKS 群集会用于通过 Azure Arc 进行工作负荷部署。

先决条件

在开始之前,请确保:

  • 你有一个 Microsoft 帐户,其中包含用于访问 Azure 门户和 Azure Stack Edge Pro GPU 设备的凭据。 使用“设置和激活设备”中的说明配置和激活 Azure Stack Edge 设备。

  • 至少已创建一个虚拟交换机,并已在 Azure Stack Edge 设备上启用计算。 有关详细步骤,请参阅“创建虚拟交换机”。

  • 你有一个客户端可以访问运行受支持操作系统的设备。 如果使用 Windows 客户端,请确保它运行的是 PowerShell 5.0 或更高版本。

  • 在 Kubernetes 群集上启用 Azure Arc 之前,请确保已针对订阅启用和注册 Microsoft.KubernetesMicrosoft.KubernetesConfiguration 资源提供程序。 有关详细步骤,请参阅通过 Azure CLI 注册资源提供程序

  • 如果打算部署适用于 Kubernetes 群集的 Azure Arc,则需要创建资源组。 必须对资源组具有所有者级别访问权限。

    若要验证资源组的访问级别,请转到“资源组”>“访问控制 (IAM)”>“查看我的访问权限”。 在“角色分配”下,你必须列为“所有者”。

    显示 Azure 门户中访问控制 (IAM) 页上所选用户的分配的屏幕截图。

根据要部署的工作负荷,可能需要确保完成以下可选步骤:

  • 如果要在已启用 Arc 的群集上部署自定义位置,则需要针对订阅注册 Microsoft.ExtendedLocation 资源提供程序。

    必须提取自定义位置对象 ID,并使用它通过设备的 PowerShell 接口启用自定义位置。

    az login
    az ad sp show --id bc313c14-387c-4e7d-a58e-70417303ee3b --query id -o tsv
    

    下面是使用 Azure CLI 的示例输出。 可以在 Azure 门户中通过 Cloud Shell 运行相同的命令。

    PS /home/user> az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv
    51dfe1e8-70c6-4de5-a08e-e18aff23d815
    PS /home/user>
    

    有关详细信息,请参阅在已启用 Arc 的 Kubernetes 中创建和管理自定义位置

  • 如果部署的是 Kubernetes 或 PMEC 工作负载:

  • 如果使用 HPN VM 作为基础结构 VM,则应会自动保留 vCPU。 运行以下命令以验证预留:

    Get-HcsNumaLpMapping
    
  • 安装或更新到 Azure Stack Edge 2307 时,将应用此配置。 在两种情况下,更新期间不会应用配置:

    • 如果配置的最小根 vCPU 数超过 Numa0 的四个 vCPU + Numa1 的所有 vCPU。 此方案主要适用于为 minroot 配置所有 vCPU 的 Azure Stack Edge 网关客户。 对于 Azure Stack Edge Pro 2,只有一个 Numa。 对于具有 40 个核心的 Azure Stack Edge Pro 2,配置的最小根 vCPU 数量超过 24 个 vCPU;而对于具有 48 个 vCPU 的 Azure Stack Edge Pro 2,配置的数量超过 28 个 vCPU。

    • 当部署了 HPN VM,并在一台具有 40 个核心的计算机上消耗超过 16 个 vCPU,或者当一台具有 48 个核心的计算机上为 HPN VM 消耗超过 20 个 vCPU 时。

    下面是 Azure Stack Edge Pro GPU 的示例输出:

    Hardware:
      { Numa Node #0 : CPUs [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] }
    
      { Numa Node #1 : CPUs [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39] }
    
    HpnCapableLpMapping:
      { Numa Node #0 : CPUs [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] }
    
      { Numa Node #1 : CPUs [24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39] }
    
    7MT0SZ2:
     HpnLpMapping:
      { Numa Node #0 : CPUs [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] }
    
      { Numa Node #1 : CPUs [] }
    
    HpnLpAvailable:
      { Numa Node #0 : CPUs [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] }
    
      { Numa Node #1 : CPUs [] }
    

在 Azure Stack Edge 上部署 AKS

在 Azure Stack Edge 上部署 AKS 有多个步骤。 某些步骤是可选的,如下所示。

验证 AKS 是否已启用

若要验证 AKS 是否已启用,请转到 Azure 门户中的 Azure Stack Edge 资源。 在“概述”窗格中,选择 Azure Kubernetes 服务磁贴。

显示 Azure 门户“概述”窗格中的“Azure Kubernetes 服务”磁贴的屏幕截图。

设置自定义位置(可选)

  1. 连接到设备的 PowerShell 界面

  2. 运行以下命令作为设置自定义位置的选项。 输入完成先决条件时提取的自定义位置对象 ID。

    Set-HcsKubeClusterArcInfo –CustomLocationsObjectId <custom_location_object_id>
    

    下面是使用 Azure CLI 的示例输出。 可以在 Azure 门户中通过 Cloud Shell 运行相同的命令。

    [1d9nhq2.microsoftdatabox.com]: PS> Set-HcsKubeClusterArcInfo –CustomLocationsObjectId 51dfe1e8-70c6-4de5-a08e-e18aff23d815
    [1d9nhq2.microsoftdatabox.com]: PS>
    

指定静态 IP 池(可选)

一个可选步骤,可在其中为 Kubernetes Pod 使用的虚拟网络分配 IP 池。

注意

SAP 客户可以跳过此步骤。

可以为为 Kubernetes 启用的每个虚拟网络指定静态 IP 地址池。 为 Kubernetes 启用的虚拟网络生成为 Kubernetes 群集创建的 NetworkAttachmentDefinition

在应用程序预配期间,Kubernetes Pod 可以在 IP 池中将静态 IP 地址用于容器网络接口,例如容器单根 I/O 虚拟化 (SR-IOV) 接口。 可以通过指向 PodSpec 中的 NetworkAttachmentDefinition 来完成此操作。

使用以下步骤在设备的本地 UI 中分配静态 IP 池。

  1. 转到 Azure 门户中“高级网络”页。

  2. 如果之前未创建虚拟网络,请选择“添加虚拟网络”以创建虚拟网络。 需要指定与虚拟网络、VLAN ID、子网掩码和网关关联的虚拟交换机。

  3. 在此示例中,我们配置了三个虚拟网络。 在每个虚拟网络中,VLAN 为 0,子网掩码和网关与外部值匹配;例如,255.255.0.0 和 192.168.0.1

    1. 第一个虚拟网络 – 名称为 N2,并与 vswitch-port5 相关联。

    2. 第二个虚拟网络 – 名称为 N3 ,并与 vswitch-port5 相关联。

    3. 第三个虚拟网络 – 名称为 N6 ,并与 vswitch-port6 相关联。

    4. 配置所有三个虚拟网络后,它们将列在虚拟网络下,如下所示:

      显示 Azure 门户中的“高级网络”页的屏幕截图。

  4. 将 IP 地址池分配给虚拟网络:

    1. Kubernetes 页上,选择创建的虚拟网络,为 Kubernetes 启用它

    2. 为虚拟网络中的 Kubernetes Pod 指定连续的静态 IP 范围。 在本示例中,我们为创建的三个虚拟网络各提供了一个 IP 地址范围。

  5. 选择“应用”,为所有虚拟网络应用更改。

    注意

    部署 AKS 群集后,将无法再修改 IP 池设置。

    显示 Azure 门户中虚拟网络的 Kubernetes 页的屏幕截图。

配置计算虚拟交换机

使用此步骤为 Kubernetes 计算流量配置虚拟交换机。

  1. 在设备的本地 UI 中,转到 Kubernetes 页。

  2. 选择“修改”为 Kubernetes 计算流量配置虚拟交换机。

    显示 Azure 门户中 Kubernetes 页的屏幕截图。

  3. 在具有 Internet 访问权限的端口上启用计算。 例如,在本例中,连接到 internet 的端口 2 已启用计算功能。 通过 Internet 访问,可以从 AKS 检索容器映像。

    Azure 一致性服务虚拟 IP 必须能够通过外部路由或通过在同一网络上创建 Azure 一致性服务虚拟 IP 来访问此计算虚拟交换机网络。

  4. 对于 Kubernetes 节点,请为此端口指定子网中六个静态 IP 的连续范围。

    作为 AKS 部署的一部分,将创建两个群集:管理群集和目标群集。 对你所指定的 IP 的使用如下所示:

    • 管理群集需要两个 IP = 1 个 IP 用于管理控制平面网络接口 + 1 个 IP 用于 API 服务器 (VIP)。

    • 目标群集需要 (2+n) IP = 1 个 IP 用于目标群集控制平面网络接口 + 1 个 IP 用于 API 服务器 (VIP) + 节点数 n。

    • 一个额外的 IP 会用于滚动更新。

      对于单个节点设备,上述结果会产生六个 IP 来部署 Kubernetes 群集。 对于两个节点的群集,需要七个 IP。

  5. 对于 Kubernetes 外部服务 IP,请为在 Kubernetes 群集外部公开的服务提供静态 IP。 每个此类服务都需要一个 IP。

    显示 Azure 门户中 Kubernetes 页上的“计算虚拟交换机”选项的屏幕截图。

启用 VM 云管理

此步骤是允许 Azure Stack Edge 门户在用于 AKS 的 Azure Stack Edge 设备上部署基础结构 VM 所必需的;例如,对于目标群集工作器节点。

  1. 在 Azure 门户中,转到 Azure Stack Edge 资源。

  2. 转到“概述”并选择“虚拟机”磁贴。

    显示 Azure 门户的“Azure Stack Edge 概述”页上的“虚拟机”磁贴的屏幕截图。

  3. 在“虚拟机”>“概述”页中,为“虚拟机云管理”选择“启用”

    显示 Azure Stack Edge 概述页的屏幕截图,其中显示了 Azure 门户上的“启用虚拟机云管理”选项。

设置 Kubernetes 群集并启用 Arc

使用此步骤设置和部署 Kubernetes 群集,并通过 Arc 启用它进行管理。

重要

在创建 Kubernetes 群集之前,请记住:

  • 部署 AKS 群集后,将无法再修改 IP 池设置。
  • 作为启用 AKS 目标群集的 Arc 的一部分,如果使用本文“设置自定义位置”(可选)部分中的可选命令传递了对象 ID,则将启用自定义位置。 如果未启用自定义位置,仍可以选择在创建 Kubernetes 群集之前执行此操作。 群集部署启动后,将无法设置自定义位置。

按照以下步骤部署 AKS 群集。

  1. 在 Azure 门户中,转到 Azure Stack Edge 资源。

  2. 选择“Azure Kubernetes 服务”磁贴。

  3. 选择“添加” 以配置 AKS。

  4. 在“创建 Kubernetes 服务”对话框中,选择基础结构 VM 的 Kubernetes 节点大小。 选择适合要部署的工作负荷大小的 VM 节点大小。 在此示例中,我们选择了 VM 大小 Standard_F16s_HPN–16 个 vCPU、32.77 GB 内存

    对于 SAP 部署,请选择 VM 节点大小 Standard_DS5_v2

    注意

    如果未填充节点大小下拉菜单,请等待几分钟,以便在上一步中启用 VM 后将其同步。

  5. 选中“通过启用 Arc 的 Kubernetes 从云端管理容器”。 选中此选项后,在创建 Kubernetes 群集时启用 Arc。

  6. 如果选择“更改”,则需要提供订阅名称、资源组、群集名称和区域。

    显示 Azure 门户中创建 Kubernetes 服务的“配置已启用 Arc 的 Kubernetes 选项”部分的屏幕截图。

    1. 应会自动填充订阅名称。

    2. 指定唯一的资源组名称。 还可以选择使用部署 Azure Stack Edge 资源的同一资源组。 必须对此资源组具有所有者级别访问权限。 若要验证资源组的访问级别,请转到“资源组”>“访问控制 (IAM)”>“查看我的访问权限”。 在“角色分配”下,你必须列为“所有者”。

      显示 Azure Stack Edge UI 的访问控制页中“我的分配”的屏幕截图。

    3. 指定已启用 Arc 的 Kubernetes 群集的名称或接受默认值。

    4. 选择要在其中创建已启用 Arc 的 Kubernetes 群集的资源的区域。 下拉列表中会显示受支持区域的筛选列表。

    5. 选择“配置” 。 还可以通过选择“重置为默认”选项来重置 Arc 设置。

  7. 选择“创建”以创建 Kubernetes 服务

    显示 Azure Stack Edge UI 的“创建 Kubernetes 服务”页的屏幕截图。

  8. 群集创建启动时,会收到通知。

    1. 创建 Kubernetes 群集后,会看到 Azure Kubernetes 服务“正在运行”

      显示按预期运行的 Azure Kubernetes 服务的屏幕截图。

      已启用 arc 的 Kubernetes 也将显示为 “正在运行”

      显示 Azure Kubernetes 服务概述页的屏幕截图,其中包含 Kubernetes 服务的状态。

      如果计划部署 Kubernetes 工作负荷,则接下来可能需要创建永久性卷来分配存储。

添加永久性卷

PersistentVolume (PV)是指 Kubernetes 群集中的一块存储。 可以静态方式将 Kubernetes 存储预配为 PersistentVolume。 也可将其动态预配为 StorageClass。 有关详细信息,请参阅 Kubernetes pod 的存储要求

创建 PV 时,有两个不同的工作流,具体取决于是否在创建共享时内联启用计算。 以下部分分别介绍了每个工作流。

在创建共享期间创建启用了计算内联的永久性卷

在 Azure Stack Edge Pro 设备上,静态预配的 PersistentVolumes 是使用设备的存储功能创建的。 当你在预配共享并且已启用“将共享用于 Edge 计算”选项时,此操作将在 Kubernetes 群集中自动创建 PV 资源

显示云存储网关的屏幕截图,其中显示了具有

若要使用云分层,可以通过启用“将该共享用于 Edge 计算”选项来创建 Edge 云共享。 系统将再次为此共享自动创建 PV。 如果启用此选项,则写入 Edge 共享的任何应用程序数据将分层到云中。

显示云存储网关添加共享的屏幕截图,其中显示启用了“将该共享与 Edge 本地共享配合使用”选项。

在创建共享期间创建未启用计算内联的永久性卷

对于在创建时未选中“将共享用于 Edge 计算”选项的共享,可以使用以下步骤添加永久性卷。

  1. 在 Azure 门户中,转到设备的 Azure Stack Edge 资源。 转到“云存储网关”>“共享”。 可以看到设备当前具有已启用“用于计算”状态的共享。

    显示已启用 Edge 计算的云存储网关共享的屏幕截图。

  2. 选择“+ 添加共享”。 对于此共享,请确保未选中“将共享用于 Edge 计算”选项。

    屏幕截图显示了在创建共享期间未启用内联计算的持久卷的“添加共享”对话框。

  3. 可以在共享列表中看到新创建的共享,“用于计算”状态为“已禁用”

    显示共享列表中的新创建的共享的屏幕截图,“用于计算”状态为“已禁用”。

  4. 返回到 Azure Stack Edge 资源>概述。 在右侧窗格中,选择“Azure Kubernetes 服务”磁贴。

    显示“Azure Stack Edge 资源概述”页的屏幕截图,其中选择了“Azure Kubernetes 服务”磁贴。

  5. 在 Azure Kubernetes 服务>概述页中,“永久性卷”磁贴会显示存在的永久性卷。 创建共享时启用了“将共享用于 Edge 计算”选项则会自动创建这些卷。 若要创建新的永久性卷,请选择“+ 添加永久性卷”

  6. 在“添加永久性卷”对话框中,选择要为其创建永久性卷的共享。

    显示“添加永久性卷”的 Azure Stack Edge 对话框的屏幕截图。

  7. 你会看到一条通知,表示正在创建永久性卷。 此操作需要数分钟才能完成。

    显示“添加永久性卷”操作已成功完成的“通知”对话框的屏幕截图。

  8. 创建永久性卷后, “概述”页会更新以包含新添加的永久性卷。

    显示包含永久性卷的 Azure Kubernetes 服务概述页的屏幕截图。

  9. 选择“查看所有永久性卷”以查看新创建的永久性卷。

移除 Azure Kubernetes 服务

在 Azure 门户中执行以下步骤,以移除 AKS。

  1. 在 Azure Stack Edge 资源中,转到 Azure Kubernetes 服务>概述

  2. 在顶部命令栏中,选择“移除”

    显示包含“移除”选项的 Azure Kubernetes 服务概述页的屏幕截图。

  3. 选择要随 AKS 一起删除的已配置加载项。 已启用 Azure Arc 的 Kubernetes 是一个加载项。 选择“移除”后,将移除所有 Kubernetes 配置和所选加载项。 操作不可逆且无法撤消。

  4. 选择确定确认操作。

    显示包含“移除”确认的 Azure Kubernetes 服务概述页的屏幕截图。

后续步骤