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

准备已启用 Azure Arc 的 Kubernetes 群集

重要

Azure IoT 操作预览版(由 Azure Arc 启用)当前处于预览状态。 不应在生产环境中使用此预览版软件。

在正式发布版本推出后,需要部署新的 Azure IoT 操作安装。 无法升级预览版安装。

有关 beta 版本、预览版或尚未正式发布的版本的 Azure 功能所适用的法律条款,请参阅 Microsoft Azure 预览版的补充使用条款

已启用 Azure Arc 的 Kubernetes 群集是部署 Azure IoT 操作预览版的先决条件。 本文介绍如何先准备已启用 Azure Arc 的 Kubernetes 群集,以便之后将 Azure IoT 操作预览版部署到启用 Arc 的 Kubernetes 群集来运行你自己的工作负载。 本文提供 Ubuntu、Windows 和云环境相关指南。

提示

若要部署 Azure IoT 操作并运行示例工作负载,请参阅快速入门:使用 K3s 在 Github Codespaces 中运行 Azure IoT 操作预览版

Azure IoT 操作作为一组已启用 Azure Arc 的 Kubernetes 服务提供,旨在与符合 CNCFArc 验证合作伙伴产品结合使用。 目前,Microsoft 已针对下面固定一组基础结构和环境验证 Azure IoT 操作:

环境 版本
Windows 11 IoT 企业版上的 AKS-EE
在单节点 AMD Ryzen-7(8 核,3.3 GHz)上,16-GB RAM
AksEdge-K3s-1.28.3-1.7.639.0
Ubuntu 22.04.2 上的 K3s
在单节点 AMD Ryzen-7(8 核,3.3 GHz)上,16-GB RAM
K3s 版本 1.28.5

重要

前面列出的环境是 Microsoft 已验证的生产类似环境。 并非只有这些环境才能运行 Azure IoT 操作。 在任何满足已启用 Azure Arc 的 Kubernetes 系统要求的已启用 Arc 的 Kubernetes 群集上,Azure IoT 操作都可以运行。

先决条件

若要准备已启用 Azure Arc 的 Kubernetes 群集,需要满足以下条件:

  • Azure 订阅。 如果还没有 Azure 订阅,可以在开始前创建一个免费帐户

  • 已在开发计算机上安装 Azure CLI 2.46.0 或更高版本。 如有必要,请使用az --version检查版本,使用az upgrade进行更新。 有关详细信息,请参阅 如何安装 Azure CLI

  • 适用于 Azure CLI 的 Azure IoT 操作扩展。 使用以下命令添加扩展或将其更新到最新版本:

    az extension add --upgrade --name azure-iot-ops
    
  • 满足系统要求的硬件:

创建群集

本部分提供相关步骤,介绍如何在 Linux 和 Windows 上已验证的环境中以及云中的 GitHub Codespaces 中准备已启用 Arc 的群集。

Azure Kubernetes 服务边缘软件包是大规模自动运行容器化应用程序的 Azure Kubernetes 服务 (AKS) 的本地 Kubernetes 实现。 AKS 边缘软件包中有一个 Microsoft 支持的 Kubernetes 平台,该平台包括一个轻量级 Kubernetes 发行版,其占用空间小且安装体验简单,让你能够轻松地在电脑类或“轻型”边缘硬件上部署 Kubernetes。

AksEdgeQuickStartForAio.ps1 脚本可自动执行创建和连接群集的过程,并推荐用于在 AKS Edge Essentials 上部署 Azure IoT 操作。

  1. 打开提升的 PowerShell 窗口并将目录更改为工作文件夹。

  2. 运行以下命令,将占位符值替换为信息:

    占位符
    SUBSCRIPTION_ID Azure 订阅的 ID。 如果不知道订阅 ID,请参阅“查找 Azure 订阅”。
    TENANT_ID Microsoft Entra 租户的 ID。 如果不知道租户 ID,请参阅“查找 Microsoft Entra 租户”。
    RESOURCE_GROUP_NAME 现有资源组的名称或要创建的新资源组的名称。
    LOCATION 离你较近的 Azure 区域。 有关当前支持的 Azure 区域的列表,请参阅支持的区域
    CLUSTER_NAME 要创建的新群集的名称。
    $url = "https://raw.githubusercontent.com/Azure/AKS-Edge/main/tools/scripts/AksEdgeQuickStart/AksEdgeQuickStartForAio.ps1"
    Invoke-WebRequest -Uri $url -OutFile .\AksEdgeQuickStartForAio.ps1
    Unblock-File .\AksEdgeQuickStartForAio.ps1
    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
    .\AksEdgeQuickStartForAio.ps1 -SubscriptionId "<SUBSCRIPTION_ID>" -TenantId "<TENANT_ID>" -ResourceGroupName "<RESOURCE_GROUP_NAME>"  -Location "<LOCATION>"  -ClusterName "<CLUSTER_NAME>"
    

    如果部署期间出现任何问(如计算机在此过程中重新启动),请再次运行整套命令。

  3. 运行以下命令以检查部署是否成功:

    Import-Module AksEdge
    Get-AksEdgeDeploymentInfo
    

    Get-AksEdgeDeploymentInfo 命令的输出中,应会看到群集的 Arc 状态为 Connected

通过 Arc 启用群集

将群集连接到 Azure Arc,以便远程管理它。

在上一节中运行的 AksEdgeQuickStartForAio.ps1 脚本处理了连接群集的步骤。 无需执行任何额外的步骤即可启用 Arc。

验证群集

若要验证群集是否已准备好进行 Azure IoT 操作部署,可以在 Azure CLI 的 Azure IoT 操作扩展中使用 verify-host 帮助程序命令。 在群集主机上运行时,会此帮助程序命令检查与 Azure 资源管理器和 Microsoft 容器注册表终结点的连接。

az iot ops verify-host

若要验证 Kubernetes 群集现在是否已启用 Azure Arc,请运行以下命令:

kubectl get deployments,pods -n azure-arc

输出如下所示:

NAME                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/clusterconnect-agent         1/1     1            1           10m
deployment.apps/extension-manager            1/1     1            1           10m
deployment.apps/clusteridentityoperator      1/1     1            1           10m
deployment.apps/controller-manager           1/1     1            1           10m
deployment.apps/flux-logs-agent              1/1     1            1           10m
deployment.apps/cluster-metadata-operator    1/1     1            1           10m
deployment.apps/extension-events-collector   1/1     1            1           10m
deployment.apps/config-agent                 1/1     1            1           10m
deployment.apps/kube-aad-proxy               1/1     1            1           10m
deployment.apps/resource-sync-agent          1/1     1            1           10m
deployment.apps/metrics-agent                1/1     1            1           10m

NAME                                              READY   STATUS    RESTARTS        AGE
pod/clusterconnect-agent-5948cdfb4c-vzfst         3/3     Running   0               10m
pod/extension-manager-65b8f7f4cb-tp7pp            3/3     Running   0               10m
pod/clusteridentityoperator-6d64fdb886-p5m25      2/2     Running   0               10m
pod/controller-manager-567c9647db-qkprs           2/2     Running   0               10m
pod/flux-logs-agent-7bf6f4bf8c-mr5df              1/1     Running   0               10m
pod/cluster-metadata-operator-7cc4c554d4-nck9z    2/2     Running   0               10m
pod/extension-events-collector-58dfb78cb5-vxbzq   2/2     Running   0               10m
pod/config-agent-7579f558d9-5jnwq                 2/2     Running   0               10m
pod/kube-aad-proxy-56d9f754d8-9gthm               2/2     Running   0               10m
pod/resource-sync-agent-769bb66b79-z9n46          2/2     Running   0               10m
pod/metrics-agent-6588f97dc-455j8                 2/2     Running   0               10m

创建站点

若要对 OT 用户有权访问哪些群集进行管理,可以将群集分组为站点。 若要了解详细信息,请参阅什么是 Azure Arc 站点管理器(预览版)?

后续步骤

现在你已经具有已启用 Azure Arc 的 Kubernetes 群集,接下来可以部署 Azure IoT 操作