使用命令列設定 Azure Arc VM 管理

適用于:Azure Stack HCI 版本 22H2 和版本 21H2

本文說明如何使用 Azure Command-Line 介面 (CLI) 來設定 Azure Arc VM 管理,包括:

若要使用 Windows Admin Center 設定 Azure Arc VM 管理,請參閱使用 Windows Admin Center 設定 Azure Arc VM 管理

如需 Azure Arc VM 管理的概觀,請參閱 什麼是 Azure Arc VM 管理?

重要

這項功能目前為「預覽」狀態。 請參閱 Microsoft Azure 預覽版增補使用規定,以了解適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的法律條款。

必要條件

在您開始前,請確定:

  • 已安裝最新版的 Azure CLI。 您必須在 Azure Stack HCI 叢集中的所有伺服器上安裝此功能。

    • 若要在叢集中的每部伺服器上安裝 Azure CLI,請使用遠端桌面通訊協定 (RDP) 連線。

    • 如需安裝 Azure CLI 的指示,請參閱 安裝 Azure CLI

      • 如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入

      • 出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能

      • 執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade

  • 若要完成 設定 Azure Arc VM 管理的先決條件

安裝 PowerShell 模組和更新延伸模組

在準備在 Azure Stack HCI 叢集上安裝 Azure Arc 資源橋接器,並建立 VM 叢集擴充功能,請透過 RDP 或主控台會話執行這些步驟。 不支援遠端 PowerShell。

  1. 以管理員身分,在 Azure Stack HCI 叢集所有的伺服器上,執行下列 Cmdlet,即可安裝必要的 PowerShell 模組:

    Install-PackageProvider -Name NuGet -Force 
    Install-Module -Name PowershellGet -Force -Confirm:$false -SkipPublisherCheck  
    

    重新啟動任何開啟的 PowerShell 視窗。

    Install-Module -Name Moc -Repository PSGallery -AcceptLicense -Force
    Initialize-MocNode
    Install-Module -Name ArcHci -Force -Confirm:$false -SkipPublisherCheck -AcceptLicense
    
  2. 重新啟動 PowerShell,然後在叢集的任何一部伺服器的 PowerShell 視窗中,提供下列各項的輸入。 如需這些參數的描述,請參閱下表。

    $vswitchName="<Switch-Name>"
    $controlPlaneIP="<IP-address>"
    $csv_path="<input-from-admin>"
    $vlanID="<vLAN-ID>" (Optional)
    $VMIP_1="<static IP address for Resource Bridge VM>" (required only for static IP configurations)   
    $VMIP_2="<static IP address for Resource Bridge VM>" (required only for static IP configurations)   
    $DNSServers="<comma separated list of DNS servers. For example: @("192.168.250.250","192.168.250.255") for a list of DNS servers. Or "192.168.250.250" for a single DNS server>" (required only for static IP configurations)
    $IPAddressPrefix="<network address in CIDR notation>" (required only for static IP configurations)
    $Gateway="<IPv4 address of the default gateway>" (required only for static IP configurations)
    $cloudServiceIP="<IP-address>" (required only for static IP configurations)
    

    其中:

    參數 描述
    vswitchName 應符合主機的交換器名稱。 此 vmswitch 提供的網路必須提供 controlPlaneIP 靜態 IP 位址。
    controlPlaneIP 用於 Arc 資源橋接器中負載平衡器的 IP 位址。 IP 位址必須與 DHCP 領域位於相同的子網路,並從 DHCP 領域排除,避免 IP 位址衝突。 如果使用 DHCP 來指派控制平面 IP,則必須保留 IP 位址。
    csv_path 可從所有叢集伺服器存取的 CSV 磁碟區路徑。 這是用來快取用於 Azure Arc 資源橋接器的 OS 映像。 這也會在安裝時儲存暫存設定檔,並在安裝後儲存雲端代理程式設定檔。 例如:C:\ClusterStorage\contosoVol
    vlanID (選擇性) vLAN 識別碼。 值 0 表示選擇性 DNS 伺服器沒有 vLAN 識別碼。
    VMIP_1、VMIP_2 (只有靜態 IP 設定需要) Arc 資源橋接器的 IP 位址。 如果您未指定這些參數,Arc 資源橋接器會從可用的 DHCP 伺服器取得 IP 位址。
    DNSServers (只有靜態 IP 設定需要) 以逗號分隔的 DNS 伺服器清單。 例如:
    - 如需 DNS 伺服器的清單: @("192.168.250.250","192.168.250.255")
    - 針對單一 DNS 伺服器: "192.168.250.250"
    IPAddressPrefix (CIDR 標記法中,只有靜態 IP 組態才需要) 網路位址。 例如:"192.168.0.0/16"。
    閘道 (只有靜態 IP 設定需要) 預設閘道的 IPv4 位址。
    cloudServiceIP (只有靜態 IP 組態需要) Arc 資源橋接器需要雲端代理程式才能在主機上執行。 此雲端代理程式會安裝為 容錯移轉叢集一般服務。 cloudServiceIP 是裝載雲端代理程式的容錯移轉叢集泛型服務的 IP 位址。 此 IP 位址必須符合用於所有用戶端存取和叢集通訊的網路 IP 位址。
  3. 準備 Azure Arc 資源橋接器的設定。 此步驟會因是否已安裝 Azure Stack HCI 上的 Azure Kubernetes Service (AKS) 而有所不同。

    • 若已安裝 Azure Stack HCI 上的 AKS。 略過此步驟,繼續進行步驟 4 以更新必要的延伸模組。

    • 若未安裝 Azure Stack HCI 上的 AKS。 執行下列 Cmdlet,為您的 Azure Arc 資源橋接器 VM 提供 IP 位址:

      Set-MocConfig -workingDir $csv_path\ResourceBridge -imageDir $csv_path\imageStore -skipHostLimitChecks -cloudConfigLocation $csv_path\cloudStore -catalog aks-hci-stable-catalogs-ext -ring stable -CloudServiceIP $cloudServiceIP -createAutoConfigContainers $false
      
      Install-Moc
      

      提示

      如果 Azure Kubernetes Service 已啟用在此叢集上執行,請參閱限制和已知問題

  4. 更新必要的延伸模組。

    • 解除安裝舊延伸模組:

      az extension remove --name arcappliance
      az extension remove --name connectedk8s
      az extension remove --name k8s-configuration
      az extension remove --name k8s-extension
      az extension remove --name customlocation
      az extension remove --name azurestackhci
      
    • 安裝新延伸模組:

      az extension add --upgrade --name arcappliance
      az extension add --upgrade --name connectedk8s
      az extension add --upgrade --name k8s-configuration
      az extension add --upgrade --name k8s-extension
      az extension add --upgrade --name customlocation
      az extension add --upgrade --name azurestackhci
      

安裝 Azure Arc 資源橋接器並建立自訂位置

若要建立自訂位置,請啟動提升權限的 PowerShell 視窗,來安裝 Azure Arc 資源橋接器,然後執行下列步驟:

  1. 執行下列 cmdlet。 如需這些參數的描述,請參閱下表。

    $resource_group="<pre-created resource group in Azure>"
    $subscription="subscription ID in Azure"
    $location="<Azure Region - Available regions include 'eastus' and 'westeurope'>"
    $customloc_name="<name of the custom location, such as <HCIClusterName>-cl>"
    

    其中:

    參數 描述
    resource_group Azure 中預先建立的資源群組名稱。
    訂用帳戶 Azure 中的訂用帳戶識別碼。
    location Azure 區域的名稱。 指定下列其中一個可用區域: eastuswesteurope
    customloc_name 自訂位置的名稱,例如 HCIClusterName-cl。

    提示

    執行 Get-AzureStackHCI 以尋找這些詳細資料。

  2. 登入 Azure 訂用帳戶,並取得 Azure Arc 資源橋接器的延伸模組和提供者:

    az login --use-device-code
    az account set --subscription $subscription
    az provider register --namespace Microsoft.Kubernetes --wait
    az provider register --namespace Microsoft.KubernetesConfiguration --wait
    az provider register --namespace Microsoft.ExtendedLocation --wait
    az provider register --namespace Microsoft.ResourceConnector --wait
    az provider register --namespace Microsoft.AzureStackHCI --wait
    az provider register --namespace Microsoft.HybridConnectivity --wait
    
  3. 根據您的網路設定執行下列 Cmdlet:

    1. 建立 Arc 資源橋接器的組態檔:

      $resource_name= ((Get-AzureStackHci).AzureResourceName) + "-arcbridge"
      mkdir $csv_path\ResourceBridge
      New-ArcHciConfigFiles -subscriptionID $subscription -location $location -resourceGroup $resource_group -resourceName $resource_name -workDirectory $csv_path\ResourceBridge -controlPlaneIP $controlPlaneIP  -k8snodeippoolstart $VMIP_1 -k8snodeippoolend $VMIP_2 -gateway $Gateway -dnsservers $DNSServers -ipaddressprefix $IPAddressPrefix -vswitchName $vswitchName -vLanID $vlanID
      

      重要

      執行基本 az arcappliance CLI 命令需要組態檔。 請確定您將這些檔案儲存在安全且安全的位置,以供日後使用。

    2. 驗證 Arc Resource Bridge 組態檔並執行初步環境檢查:

      az arcappliance validate hci --config-file $csv_path\ResourceBridge\hci-appliance.yaml
      
    3. 下載用來從雲端建立 Arc Resource Bridge VM 的映射,並將複本複製到 Azure Stack HCI:

      az arcappliance prepare hci --config-file $csv_path\ResourceBridge\hci-appliance.yaml
      
    4. 建置適用于 Arc 資源橋接器的 Azure ARM 資源和內部部署設備 VM:

      az arcappliance deploy hci --config-file  $csv_path\ResourceBridge\hci-appliance.yaml --outfile $env:USERPROFILE\.kube\config
      

      重要事項

      準備和部署最多可能需要 30 分鐘的時間才能完成。

      deploy如果 Cmdlet 失敗,請清除安裝,然後重試 deploy Cmdlet。 執行下列 Cmdlet 來清除安裝:

      az arcappliance delete hci --config-file $csv_path\ResourceBridge\hci-appliance.yaml --yes
      

      雖然 Arc Resource Bridge 部署失敗的原因有很多,但其中一個原因是 KVA 逾時錯誤。 如需 KVA 逾時錯誤以及如何進行疑難排解的詳細資訊,請參閱 KVA 逾時錯誤

    5. 建立 Arc 資源橋接器的 Azure ARM 資源與內部部署設備 VM 之間的連線:

      az arcappliance create hci --config-file $csv_path\ResourceBridge\hci-appliance.yaml --kubeconfig $env:USERPROFILE\.kube\config
      
  4. 確認 Arc 設備正在執行。 繼續執行下列 Cmdlet,直到設備佈建狀態為成功,且狀態為正在執行。 此作業可能最長需要 5 分鐘。

    az arcappliance show --resource-group $resource_group --name $resource_name
    
  5. 透過新部署的 Arc 資源橋接器,新增必要的 VM 延伸模組,即可啟用 VM 管理功能:

    $hciClusterId= (Get-AzureStackHci).AzureResourceUri
    az k8s-extension create --cluster-type appliances --cluster-name $resource_name --resource-group $resource_group --name hci-vmoperator --extension-type Microsoft.AZStackHCI.Operator --scope cluster --release-namespace helm-operator2 --configuration-settings Microsoft.CustomLocation.ServiceAccount=hci-vmoperator --configuration-protected-settings-file $csv_path\ResourceBridge\hci-config.json --configuration-settings HCIClusterID=$hciClusterId --auto-upgrade true
    
  6. 驗證是否已安裝延伸模組。 繼續執行下列 Cmdlet,直到延伸模組結果 成功為止。 此作業可能最長需要 5 分鐘。

    az k8s-extension show --cluster-type appliances --cluster-name $resource_name --resource-group $resource_group --name hci-vmoperator --out table --query '[provisioningState]'
    
  7. 建立 Azure Stack HCI 叢集的自訂位置後,customloc_name 即是自訂位置的名稱,例如 "HCICluster -cl":

    az customlocation create --resource-group $resource_group --name $customloc_name --cluster-extension-ids "/subscriptions/$subscription/resourceGroups/$resource_group/providers/Microsoft.ResourceConnector/appliances/$resource_name/providers/Microsoft.KubernetesConfiguration/extensions/hci-vmoperator" --namespace hci-vmoperator --host-resource-id "/subscriptions/$subscription/resourceGroups/$resource_group/providers/Microsoft.ResourceConnector/appliances/$resource_name" --location $location
    

現在您可以瀏覽至 Azure 的資源群組,並查看您為 Azure Stack HCI 叢集建立的自訂位置和 Azure Arc 資源橋接器。

後續步驟