共用方式為


將 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,則可以略過這些步驟。

開始之前

確認您有下列需求:

  • AKS 叢集,至少有一個 Linux 背景工作角色節點已啟動並執行。
  • 安裝 AksHci PowerShell 模組
  • Azure 訂用帳戶上的下列存取層級:
    • 具有內 建擁有者 角色的用戶帳戶。 您可以流覽至您的訂用帳戶,選取 Azure 入口網站 左側的 [訪問控制],然後按兩下 [檢視我的存取權],以檢查您的存取層級。
    • 具有內 建擁有者 角色的服務主體。
  • 在 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 建立服務主體。

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

如果您想要在叢集和 Azure Arc 上啟用自定義位置,請執行下列命令以取得自訂位置應用程式的物件識別碼,然後使用服務主體連線到 Azure Arc:

$objectID = (Get-AzADServicePrincipal -ApplicationId "00001111-aaaa-2222-bbbb-3333cccc4444").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

下一步