将 AKS Edge Essentials 群集连接到 Arc

本文介绍如何将 AKS Edge Essentials 群集连接到 Azure Arc,以便可以在Azure 门户上监视群集的运行状况。 如果群集已连接到代理,可以使用 GitHub 存储库中提供的脚本将群集连接到 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 部分下的 aksedge-config.json 文件中提供 Azure 订阅的详细信息。 若要使用已启用 Azure Arc 的 kubernetes 成功连接到 Azure,需要使用内置 Microsoft.Kubernetes connected cluster role 服务主体来访问 Azure 上的资源。 如果已有服务主体 ID 和密码,则可以更新aksedge-config.json文件中的所有字段。 如果需要创建服务主体,可以 按照以下步骤操作

重要

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

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

注意

只需为每个 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. 现在,可以查看群集上的资源。 “ 工作负荷 ”选项显示群集中运行的 Pod。

    kubectl get pods --all-namespaces
    

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

断开与 Arc 的连接

运行 Disconnect-AksEdgeArc 以断开已启用 Arc 的 Kubernetes 的连接。

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

后续步骤