将Azure Kubernetes 服务群集连接到 Azure Arc
适用于:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS
将 Azure Kubernetes 服务 (AKS) 群集附加到 Azure Arc 时,它将获取 Azure 资源管理器表示形式。 群集附加到标准 Azure 订阅,位于资源组中,可以像任何其他 Azure 资源一样接收标记。 此外,Kubernetes 表示形式允许将以下功能扩展到 Kubernetes 群集:
- 管理服务:GitOps) (配置、用于容器的 Azure Monitor Azure Policy (Gatekeeper) 。
- 数据服务:SQL 托管实例、超大规模 PostgreSQL。
- 应用程序服务:App 服务、函数、事件网格、逻辑应用API 管理。
若要将 Kubernetes 群集连接到 Azure,群集管理员必须部署代理。 这些代理在名为 azure-arc 的 Kubernetes 命名空间中运行,是标准 Kubernetes 部署。 代理负责连接到 Azure、收集 Azure Arc 日志和指标,并在群集上启用前面提到的方案。
AKS 支持行业标准 SSL 来保护传输中的数据。 此外,数据以静态加密方式存储在 Azure Cosmos DB 数据库中,确保数据保密性。
以下步骤介绍如何在 Arc 启用的 AKS 中将 AKS 群集连接到 Azure Arc。如果已使用 Windows Admin Center 将 Kubernetes 群集连接到 Azure Arc,则可以跳过这些步骤。
开始之前
验证是否已满足以下要求:
- 具有至少一个已启动并正在运行的 Linux 工作器节点的 AKS 群集 。
- 安装 AksHci PowerShell 模块。
- Azure 订阅上的以下访问级别:
- 一个具有内置“所有者”角色的用户帐户。 可以通过导航到订阅,选择Azure 门户左侧的“访问控制 (IAM) ”,然后单击“查看我的访问权限”来检查访问级别。
- 具有内置 所有者 角色的服务主体。
- 在 PowerShell 管理窗口中运行本文中的命令。
- 确保满足 AKS 的网络要求。
步骤 1 - 登录 Azure
若要登录到 Azure,请运行 Connect-AzAccount PowerShell 命令:
Connect-AzAccount $tenantId
若要切换到其他订阅,请运行 Set-AzContext PowerShell 命令:
Set-AzContext -Subscription $subscriptionId
步骤 2:为 AKS 注册两个提供程序
如果已在订阅上注册了 AKS 的两个提供程序,则可以跳过此步骤。 注册是一个异步过程,需要为每个订阅执行一次。 注册可能需要大约 10 分钟:
Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Register-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation
可通过以下命令检查你是否已注册:
Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Get-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation
步骤 3:使用 Aks-Hci PowerShell 模块连接到 Azure Arc
使用 Enable-AksHciArcConnection PowerShell 命令将 AKS 群集连接到 Kubernetes。 此步骤将适用于 Kubernetes 的 Azure Arc 代理部署到 命名空间中 azure-arc
:
Enable-AksHciArcConnection -name $clusterName
使用服务主体将 AKS 群集连接到 Azure Arc
如果无权访问作为“所有者”的订阅,则可以使用 服务主体将 AKS 群集连接到 Azure Arc。
第一个命令提示用户输入服务主体凭据,然后将其存储在 credential
变量中。 在出现提示时,输入你的应用程序 ID 作为用户名,然后输入服务主体机密作为密码。 请确保从订阅管理员获取这些值。第二个命令使用变量中 credential
存储的服务主体凭据将群集连接到 Azure Arc:
$Credential = Get-Credential
Enable-AksHciArcConnection -name $clusterName -subscriptionId $subscriptionId -resourceGroup $resourceGroup -credential $Credential -tenantId $tenantId -location $location
请确保上述命令中使用的服务主体具有分配给它的“所有者”角色,并且其范围超过命令中使用的订阅 ID。 有关服务主体的详细信息,请参阅使用 Azure PowerShell 创建服务主体。
将 AKS 群集连接到 Azure Arc 并启用自定义位置
如果要在群集上启用自定义位置以及 Azure Arc,请运行以下命令以获取自定义位置应用程序的对象 ID,然后使用服务主体连接到 Azure Arc:
$objectID = (Get-AzADServicePrincipal -ApplicationId "bc313c14-388c-4e7d-a58e-70017303ee3b").Id
Enable-AksHciArcConnection -name $clusterName -subscriptionId $subscriptionId -resourceGroup $resourceGroup -credential $Credential -tenantId $tenantId -location -customLocationsOid $objectID
验证连接的群集
可以在 Azure 门户中查看你的 Kubernetes 群集资源。 在浏览器中打开门户后,根据 enable-akshciarcconnection PowerShell 命令中使用的资源名称和资源组名称输入导航到资源组和 AKS 资源。
注意
连接群集后,群集元数据 (群集版本、代理版本、节点数) 最多可能需要大约 5 到 10 分钟才能显示在 Azure 门户 AKS 资源的概述页上。
适用于 Kubernetes 的 Azure Arc 代理
AKS 将一些运算符部署到 命名空间中 azure-arc
。 可以使用 查看这些部署和 Pod kubectl
,如以下示例所示:
kubectl -n azure-arc get deployments,pods
AKS 由几个代理 (运算符) 组成,这些代理在部署到命名空间的 azure-arc
群集中运行。 有关这些代理的详细信息, 请参阅此概述。
断开 AKS 群集与 Azure Arc 的连接
如果要断开群集与 AKS 的连接,请运行 Disable-AksHciArcConnection PowerShell 命令。 在运行命令之前,请确保登录到 Azure:
Disable-AksHciArcConnection -Name $clusterName
后续步骤
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈