將 Azure Kubernetes Service 叢集連線至 Azure Arc

適用於:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS

當 Azure Kubernetes Service (AKS) 叢集連結至 Azure Arc 時,它會取得 Azure Resource Manager 表示法。 叢集會附加至標準 Azure 訂用帳戶 (位於資源群組中),且可以如同任何其他 Azure 資源接收標籤。 此外,Kubernetes 表示法可讓您將下列功能延伸至 Kubernetes 叢集:

  • 管理服務: (GitOps) 、適用於容器的 Azure 監視器、Azure 原則 (Gatekeeper) 的組態。
  • 數據服務:SQL 受管理執行個體、PostgreSQL 超大規模資料庫。
  • 應用程式服務:App Service、Functions、事件方格、Logic Apps、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 變數中。 出現提示時,請輸入使用者名稱的應用程式識別碼,然後使用服務主體密碼作為密碼。 請確定您從訂用帳戶管理員取得這些值。第二個命令會使用儲存在 變數中的 $Credential 服務主體認證,將您的叢集聯機到 Azure Arc:

$Credential = Get-Credential
Enable-AksHciArcConnection -name $clusterName -subscriptionId $subscriptionId -resourceGroup $resourceGroup -credential $Credential -tenantId $tenantId -location $location

請確定上述命令中使用的服務主體已指派「擁有者」角色,且其範圍超出命令中使用的訂用帳戶標識碼。 如需服務主體的詳細資訊,請參閱使用 Azure PowerShell Create 服務主體

將您的 AKS 叢集連線至 Azure Arc 並啟用自訂位置

如果您想要在叢集和 Azure Arc 上啟用自定義位置,請執行下列命令以取得自訂位置應用程式的物件識別碼,然後使用服務主體連線到 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 叢集資源。 一旦您在瀏覽器中開啟入口網站,請流覽至資源群組和 AKS 資源,該資源是以 enable-akshciarcconnection PowerShell 命令中使用的資源名稱和資源組名輸入為基礎。

注意

聯機叢集之後,叢集元數據最多可能需要五到十分鐘的時間, (叢集版本、代理程式版本、節點數目) 才能顯示在 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

後續步驟