将 AKS Edge Essentials 群集连接到 Arc

本文介绍如何将 AKS Edge Essentials 群集连接到 Azure Arc,以便可以在Azure 门户上监视群集的运行状况。 如果您的群集连接到代理,您可以使用 GitHub 存储库中提供的脚本,将您的群集连接到 Arc,具体方法详见此处。

重要

从 AKS Edge Essentials 1.10.868.0 版本开始,需要在配置文件中包含 Arc 部分。 运行 New-AksEdgeDeployment 以部署 AKS Edge Essentials 群集后,Azure Arc 连接会自动发生。

先决条件

  • 在连接到 Arc 之前,属于订阅所有者或参与者角色的基础结构管理员必须:
    1. 在 Azure 订阅中启用所有必需的资源提供程序,例如 Microsoft.HybridCompute、Microsoft.GuestConfiguration、Microsoft.HybridConnectivityMicrosoft.KubernetesMicrosoft.ExtendedLocationMicrosoft.KubernetesConfiguration
    2. 为 AKS Edge Essentials Azure 资源创建和验证资源组。
  • 若要连接到 Arc,Kubernetes 操作员需要在资源组级别为标识指定一个 Kubernetes 群集 - Azure Arc 载入角色。 若要与 Arc 断开连接,操作员需要在资源组级别为标识指定一个 Azure Kubernetes 服务 Arc 参与者角色。 若要检查访问级别,请导航到Azure 门户上的订阅,选择左侧的访问控制(IAM),然后选择“查看我的访问权限”。 有关管理资源组的详细信息,请参阅 Azure 文档 。 拥有所有者或参与者角色的基础结构管理员还可以执行连接或断开 Arc 的操作。
  • 除了这些先决条件,请确保满足 Azure Arc 启用的 Kubernetes 的所有网络要求

注意

需要 “参与者” 角色才能删除资源组中的资源。 如果没有此角色分配,则从 Arc 断开连接的命令将失败。

步骤 1:配置计算机

安装依赖项

在提升的 PowerShell 窗口中运行以下命令,在 PowerShell 中安装依赖项:

Install-Module Az.Resources -Repository PSGallery -Force -AllowClobber -ErrorAction Stop  
Install-Module Az.Accounts -Repository PSGallery -Force -AllowClobber -ErrorAction Stop 
Install-Module Az.ConnectedKubernetes -Repository PSGallery -Force -AllowClobber -ErrorAction Stop  

步骤 2:配置 Azure 环境

根据下表中所述,在 部分下的 Arc 文件中提供 Azure 订阅的详细信息。 若要使用已启用 Azure Arc 的 kubernetes 成功连接到 Azure,需要使用内置 Microsoft.Kubernetes connected cluster role 服务主体来访问 Azure 上的资源。 如果已有服务主体 ID 和密码,则可以更新aksedge-config.json文件中的所有字段。 如果需要创建服务主体,可以 按照以下步骤操作

重要

客户端机密是一种密码形式。 适当的管理对于环境的安全性至关重要。

  • 创建客户端密码时,请根据部署的注册时间和范围设置非常短的过期时间。
  • 请务必保护客户端机密值和配置文件免受常规访问。
  • 请注意,如果群集的配置文件在存储客户端密码时进行备份,则有权访问备份的任何人可以使用客户端密码。
  • 注册群集后,请从该群集的配置文件中删除客户端密码。
  • 在任务范围内注册所有群集后,应轮换客户端密码并/或从 Microsoft Entra ID 环境中删除服务主体。
属性 值类型 说明
ClusterName 字符串 群集的名称。 默认值为 hostname_cluster
Location 字符串 资源组的位置。 请选择最靠近部署的位置。
SubscriptionId GUID 订阅 ID。 在Azure 门户中,选择正在使用的订阅,并将订阅 ID 字符串复制/粘贴到 JSON 中。
TenantId GUID 租户 ID。 在Azure 门户中,搜索Microsoft Entra ID,该 ID 应将你带到“默认目录”页。 在此处,可以将租户 ID 字符串复制/粘贴到 JSON 中。
ResourceGroupName 字符串 用于托管 AKS Edge Essentials 的 Azure 资源的 Azure 资源组名称。 可以使用现有资源组,或者如果添加新名称,系统会为你创建一个。
ClientId GUID 提供用作凭据的 Azure 服务主体的应用程序 ID。 AKS Edge Essentials 使用此服务主体将群集连接到 Arc。可以使用Azure 门户Microsoft Entra 资源页中的应用注册页列出和管理租户中的服务主体。 请注意,服务主体需要在订阅或资源组级别指定 Kubernetes Cluster - Azure Arc 载入角色。 有关详细信息,请参阅 Microsoft Entra 服务主体的标识要求
ClientSecret 字符串 服务主体的密码。

注意

只需为每个 Azure 订阅执行一次此配置。 无需为每个 Kubernetes 群集重复此过程。

步骤 3:将群集连接到 Arc

运行 Connect-AksEdgeArc 以安装现有群集并将其连接到已启用 Arc 的 Kubernetes:

# Connect Arc-enabled kubernetes
Connect-AksEdgeArc -JsonConfigFilePath .\aksedge-config.json

注意

此步骤最多可能需要 10 分钟,PowerShell 可能会在建立连接 Azure 的 Kubernetes 时停滞 your cluster name。 PowerShell 在进程完成时输出 True 并返回到提示符。

显示连接到 Arc 时 PowerShell 提示符的屏幕截图。

步骤 4:在 Azure 中查看 AKS Edge Essentials 资源

  1. 完成此过程后,如果导航到资源组,可以在Azure 门户中查看群集:

    显示Azure 门户中的群集的屏幕截图。

  2. 在左侧面板中,选择 Kubernetes 资源下的“命名空间”选项(预览版):

    Kubernetes 资源预览版。

  3. 若要查看 Kubernetes 资源,需要持有者令牌。

    显示需要持有者令牌页面的屏幕截图。

  4. 还可以运行 Get-AksEdgeManagedServiceToken 以检索服务令牌。

    显示在门户中粘贴令牌的位置的屏幕截图。

  5. 现在,可以查看群集上的资源。 “工作负荷”选项显示群集中运行的容器组。

    kubectl get pods --all-namespaces
    

    显示 Arc 中所有 Pod 的屏幕截图。

断开与 Arc 的连接

执行 Disconnect-AksEdgeArc 以断开与启用 Arc 的 Kubernetes 的连接。

# Disconnect Arc-enabled kubernetes
Disconnect-AksEdgeArc -JsonConfigFilePath .\aksedge-config.json

后续步骤