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

准备已启用 Azure Arc 的 Kubernetes 群集

重要

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

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

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

提示

若要部署 Azure IoT 操作并运行示例工作负载,请参阅快速入门:将 Azure IoT 操作预览版部署到已启用 Arc 的 Kubernetes 群集

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

环境 版本
Windows 11 IoT 企业版上的 AKS-EE
在单节点 AMD Ryzen-7(8 核,3.3 GHz)上,16-GB RAM
AksEdge-K3s-1.26.10-1.6.384.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 脚本自动执行本部分中的步骤并连接群集。

打开提升的 PowerShell 窗口,将目录更改为工作文件夹,然后运行以下命令:

$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>"

在此过程中,计算机可能会重新启动。 如果是,请再次运行整个命令集。

为 AKS 边缘软件包准备计算机。

  1. 已验证的 AKS 边缘软件包的安装程序版本下载到本地计算机。

  2. 完成为 AKS 边缘软件包准备计算机中的步骤。 请务必使用在上一步中下载的经过验证的安装程序,而不是最新版本。

在计算机上设置 AKS 边缘软件包群集。

  1. 完成创建单个计算机部署中的步骤,但在步骤 1 :单个计算机配置参数结束时,修改 aksedge-config.json 文件中的以下值:

    `Init.ServiceIPRangeSize` = 10
    `LinuxNode.DataSizeInGB` = 30
    `LinuxNode.MemoryInMB` = 8192
    
  2. 运行以下命令,在群集中安装 local-path 存储:

    kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/local-path-storage.yaml
    

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

Import-Module AksEdge
Get-AksEdgeDeploymentInfo

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

通过 Arc 启用群集

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

若要将群集连接到 Azure Arc,请完成将 AKS 边缘软件包群集连接到 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 操作