AKS Edge Essentials 的其他配置和脚本

本文提供了连接到 Azure Arc 的替代方法,这些方法适用于通过代理连接的群集。

使用代理将 AKS Edge Essentials 群集连接到 Arc

先决条件

  • 具有“所有者”角色或参与者用户访问管理员角色的组合的 Azure 订阅。 可以通过导航到订阅、选择Azure 门户左侧的访问控制(IAM),然后选择“查看我的访问权限”来检查访问级别。 有关管理资源组的详细信息,请阅读 Azure 资源管理器文档
  • 在 Azure 订阅中启用所有必需的资源提供程序,例如 Microsoft.HybridComputeMicrosoft.GuestConfigurationMicrosoft.HybridConnectivityMicrosoft.KubernetesMicrosoft.KubernetesConfiguration
  • 为 AKS Edge Essentials Azure 资源创建和验证资源组。

注意

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

步骤 1:为 Azure 连接配置群集

  1. 下载 Azure/AKS-Edge GitHub 存储库(如果之前尚未这样做)。 导航到“代码”选项卡,然后单击“下载 Zip”按钮以.zip文件的形式下载存储库。 将 .zip 文件解压缩到本地文件夹。

  2. 根据下表中所述, 在aide-userconfig.json 文件中 Azure 提供 Azure 订阅的详细信息。 若要使用已启用 Azure Arc 的 kubernetes 成功连接到 Azure,需要提供对 Azure 上资源的基于角色的访问的服务主体。 如果已有服务主体 ID 和密码,则可以更新aide-userconfig.json文件中的所有字段。 如果没有服务主体,可以提供一个名称,下一步中的脚本将创建一个并填充 Auth 部分。

    属性 值类型 说明
    Azure.ClusterName string 为群集提供一个名称。 默认情况下, hostname_cluster 使用的名称。
    Azure.Location string 资源组的位置。 请选择最靠近部署的位置。
    Azure.SubscriptionName string 你的订阅名称。
    Azure.SubscriptionId GUID 订阅 ID。 在Azure 门户中,选择正在使用的订阅,然后将订阅 ID 字符串复制/粘贴到 JSON 中。
    Azure.TenantId GUID 租户 ID。 在Azure 门户中,搜索“Azure Active Directory”,这会带你访问“默认目录”页。 在此处,可以将租户 ID 字符串复制/粘贴到 JSON 文件中。
    Azure.ResourceGroupName string 用于托管 AKS 边缘软件包的 Azure 资源的 Azure 资源组的名称。 可以使用现有资源组,或者如果添加新名称,系统会为你创建一个。
    Azure.ServicePrincipalName string Azure 服务主体名称。
    Azure.Auth.ServicePrincipalId GUID 用作凭据的 Azure 服务主体的 AppID。 AKS Edge Essentials 使用此服务主体将群集连接到 Arc。可以使用现有服务主体,或者如果添加新名称,系统会在下一步创建一个服务主体。
    Azure.Auth.Password string 要用作凭据的 Azure 服务主体的密码(以明文形式)。
    AksEdgeConfigFile string AKS Edge Essentials 配置的文件名(aksedge-config.json)。 该 AksEdgeAzureSetup.ps1 脚本使用所需的信息更新 Arc 此 JSON 文件的节。

    注意

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

  3. 运行或双击 AksEdgePrompt.cmd 文件以打开加载所需模块的提升的 PowerShell 窗口。 将显示电脑信息和已安装的软件版本的概述。

  4. tools\scripts\AksEdgeAzureSetup 文件夹中运行 AksEdgeAzureSetup.ps1 脚本。 此脚本提示使用凭据登录以设置 Azure 订阅:

    # prompts for interactive login for service principal creation with Contributor role at resource group level
    ..\tools\scripts\AksEdgeAzureSetup\AksEdgeAzureSetup.ps1 .\aide-userconfig.json -spContributorRole
    
    # (or) alternative option
    
    # Prompts for interactive login for service principal creation with minimal privileges
    ..\tools\scripts\AksEdgeAzureSetup\AksEdgeAzureSetup.ps1 .\aide-userconfig.json
    
  5. 使用 AksEdgeAzureSetup-Test.ps1 脚本确保凭据有效。 此脚本使用新的服务主体凭据登录到 Azure,并检查 Azure 资源的状态:

    # Test the credentials
    ..\tools\scripts\AksEdgeAzureSetup\AksEdgeAzureSetup-Test.ps1 .\aide-userconfig.json
    

步骤 2:将群集连接到 Azure

  1. 使用 Read-AideUserConfig AksEdgeShell 将 JSON 配置加载到 AksEdgeShell 中,并验证值是否已使用 Get-AideUserConfig。 或者,可以重新打开 AksEdgePrompt.cmd 以使用更新的 JSON 配置:

    Read-AideUserConfig
    Get-AideUserConfig
    

    重要

    每次修改aide-userconfig.json、运行Read-AideUserConfig以重新加载或关闭并重新打开AksEdgePrompt.cmd

  2. 运行 Initialize-AideArc。 这会安装 Azure CLI(如果尚未安装),使用给定凭据登录到 Azure,并验证 Azure 配置(资源提供程序和资源组状态):

    Initialize-AideArc
    
  3. 运行Connect-AideArc以安装主机并将其连接到已启用 Arc 的服务器,并将现有群集连接到已启用 Arc 的 Kubernetes:

    # Connect Arc-enabled server and Arc-enabled Kubernetes
    Connect-AideArc
    

    或者,可以单独使用 Connect-AideArcServer 已启用 Arc 的服务器和 Connect-AideArcKubernetes 已启用 Arc 的 Kubernetes 连接它们:

    # Connect Arc-enabled server
    Connect-AideArcServer
    # Connect Arc-enabled Kubernetes
    Connect-AideArcKubernetes
    

    注意

    此步骤最多可能需要 10 分钟,PowerShell 可能会停滞在“建立 Azure 连接的 Kubernetes”上 your cluster name。 PowerShell 命令输出 True 并返回到进程完成后的提示。 持有者令牌保存在工具文件夹中servicetoken.txt

步骤 3:在 Azure 上查看群集

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

    显示 kubernetes 资源预览的屏幕截图。

  2. 若要查看 Kubernetes 资源,需要持有者令牌:

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

  3. 在 PowerShell 窗口中,运行Get-AksEdgeManagedServiceToken、复制完整字符串并将其粘贴到Azure 门户:

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

  4. 现在,可以查看群集上的资源。 下图显示了 “工作负荷 ”边栏选项卡,其中显示与 kubectl get pods --all-namespaces以下内容相同:

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

使用代理时断开 AKS Edge Essentials 群集与 Arc 的连接

运行 Disconnect-AideArc 以断开已启用 Arc 的服务器和已启用 Arc 的 Kubernetes 的连接:

# Disconnect Arc-enabled server and Arc-enabled Kubernetes
Disconnect-AideArc

或者,可以单独使用 Connect-AideArcServer 已启用 Arc 的服务器和 Connect-AideArcKubernetes 已启用 Arc 的 Kubernetes 断开连接:

# Disconnect Arc-enabled server
Disconnect-AideArcServer
# Disconnect Arc-enabled Kubernetes
Disconnect-AideArcKubernetes

将主机连接到 Arc

  1. 可以使用已启用 Arc 的服务器连接主机 Connect-AideArcServer

    # Connect Arc-enabled server
    Connect-AideArcServer
    
  2. 若要断开主机与 Arc 的连接,请使用 Disconnect-AideArcServer 已启用 Arc 的服务器:

    # Disconnect Arc-enabled server
    Disconnect-AideArcServer
    

    还可以按照此处的步骤卸载 Arc for Server 代理。 若要全面清理Azure 门户,请删除为此示例创建的服务主体和资源组。

后续步骤