在 Azure Stack HCI 和 Windows Server 上設定Azure Kubernetes Service主機,並使用 PowerShell 部署工作負載叢集

適用於:Azure Stack HCI 或 Windows Server Datacenter

本快速入門會引導您設定 Azure Kubernetes Service (AKS) 主機。 您可以使用 PowerShell 在 Azure Stack HCI 和 Windows Server 上建立 Kubernetes 叢集。 若要改用 Windows Admin Center,請參閱使用 Windows Admin Center 設定

注意

開始之前

  • 請確定您已滿足系統需求中的所有先決條件。
  • 使用 Azure 帳戶,來註冊計費用的 AKS 主機。 如需詳細資訊,請參閱 Azure 需求

安裝 AksHci PowerShell 模組

在 Azure Stack HCI 叢集或 Windows Server 叢集的所有節點上遵循下列步驟:

注意

如要使用遠端 PowerShell,則必須使用 CredSSP。

  1. 關閉所有開啟的 PowerShell 視窗、以系統管理員身分開啟新的 PowerShell 會話,然後在 Azure Stack HCI 或 Windows Server 叢集中的所有節點上執行下列命令:

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

    您必須再次關閉所有現有的 PowerShell 視窗,以確保重新整理已載入的模組。 在您關閉所有開啟的 PowerShell 視窗之前,請勿繼續進行下一個步驟。

  2. 請在 Azure Stack HCI 或 Windows Server 叢集的所有節點上執行下列命令,以安裝 AKS-HCI PowerShell 模組:

    Install-Module -Name AksHci -Repository PSGallery -Force -AcceptLicense
    

    您必須再次關閉所有現有的 PowerShell 視窗,以確保重新整理已載入的模組。 在您關閉所有開啟的 PowerShell 視窗之前,請勿繼續進行下一個步驟。

您可以使用 協助程式腳本來刪除舊的 AKS-HCI PowerShell 模組,以避免 AKS部署中的任何 PowerShell 版本相關問題。

驗證您的安裝

Get-Command -Module AksHci

若要檢視 AksHci PowerShell 命令的完整清單,請參閱 AksHci PowerShell

註冊訂閱的資源提供者

註冊程式之前,請在 Azure 中為 Arc 註冊啟用的 AKS 啟用適當的資源提供者。 若要這樣做,請執行下列 PowerShell 命令:

若要登入 Azure,請執行 Connect-AzAccount PowerShell 命令:

Connect-AzAccount

如果想要切換至不同的訂閱,請執行 Set-AzContext PowerShell 命令:

Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx"

執行下列命令,將您的 Azure 訂用帳戶註冊到已啟用 Azure Arc 的 Kubernetes 資源提供者。 此註冊程式最多可能需要 10 分鐘,但只需要在特定訂用帳戶上執行一次:

Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Register-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

若要驗證註冊程式,請執行下列 PowerShell 命令:

Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Get-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

步驟 1:準備用於部署的機器

在每個實體節點上執行檢查,以查看是否符合 Arc 啟用的 AKS 安裝所有需求。 以系統管理員身分開啟 PowerShell,並在 Azure Stack HCI 和 Windows Server 叢集中的所有節點上執行下列 Initialize-AksHciNode 命令:

Initialize-AksHciNode

步驟 2:建立虛擬網路

在 Azure Stack HCI 和 Windows Server 叢集中的任何一個節點上執行下列命令。

若要取得可用交換器的名稱,請執行下列命令。 請確定 SwitchType VM 交換器的 是「外部」:

Get-VMSwitch

範例輸出:

Name        SwitchType     NetAdapterInterfaceDescription
----        ----------     ------------------------------
extSwitch   External       Mellanox ConnectX-3 Pro Ethernet Adapter

若要為部署中的節點建立要使用的虛擬網路,請使用 New-AksHciNetworkSetting PowerShell 命令建立環境變數。 稍後會使用此虛擬網路來設定使用靜態 IP 的部署。 如果您想要使用 DHCP 設定 AKS 部署,請參閱 New-AksHciNetworkSetting 以取得範例。 您也可以檢閱某些網路節點概念

#static IP
$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -k8sNodeIpPoolStart "172.16.10.1" -k8sNodeIpPoolEnd "172.16.10.255" -vipPoolStart "172.16.255.0" -vipPoolEnd "172.16.255.254" -ipAddressPrefix "172.16.0.0/16" -gateway "172.16.0.1" -dnsServers "172.16.0.1" -vlanId 9

注意

您必須為環境自訂此範例命令中顯示的值。

步驟 3:設定部署

在 Azure Stack HCI 和 Windows Server 叢集中的任何一個節點上執行下列命令。

若要建立 AKS 主機的組態設定,請使用 Set-AksHciConfig 命令。 您必須指定 imageDirworkingDircloudConfigLocation 參數。 如果您想要重設設定詳細資料,請使用新的參數再次執行命令。

使用下列命令來設定部署:

$csvPath = 'C:\clusterstorage\volume01' # Specify your preferred CSV path
Set-AksHciConfig -imageDir $csvPath\Images -workingDir $csvPath\ImageStore -cloudConfigLocation $csvPath\Config -vnet $vnet

注意

您必須為環境自訂此範例命令中顯示的值。

步驟 4:登入 Azure 並設定註冊設定

選項 1:如果您有「擁有者」許可權,請使用您的Microsoft Entra帳戶

使用您的訂用帳戶和資源組名來執行下列 Set-AksHciRegistration PowerShell 命令,以登入 Azure。 您必須擁有 Azure 訂用帳戶,以及澳大利亞東部、美國東部、東南亞或西歐 Azure 區域中的現有 Azure 資源群組:

Set-AksHciRegistration -subscriptionId "<subscriptionId>" -resourceGroupName "<resourceGroupName>"

選項 2:使用 Azure 服務主體

如果您沒有「擁有者」訂用帳戶的存取權,您可以使用服務主體向 Azure 註冊 AKS 主機以進行計費。 如需關於如何使用服務主體的詳細資訊,請參閱使用服務主體並在 Azure Stack HCI 上的 AKS 和 Windows Server 上註冊 AKS

步驟 5:開始新的部署

在 Azure Stack HCI 或 Windows Server 叢集中的任何一個節點上執行下列命令。

設定部署之後,您必須啟動它,才能安裝 AKS 代理程式/服務和 AKS 主機。 若要開始部署,請執行下列命令:

提示

若要查看安裝期間的其他狀態詳細資料,請在繼續之前設定 $VerbosePreference = "Continue"

Install-AksHci

警告

在安裝 AKS 主機期間,會在註冊期間設定的資源群組中建立 Kubernetes - Azure Arc 資源類型。 請勿刪除此資源,因為它代表您的 AKS 主機。 您可以檢查資源的發佈欄位中有沒有 aks_management 值來識別資源。 如果您刪除此資源,則會導致原則外部署。

步驟 6:建立 Kubernetes 叢集

安裝 AKS 主機之後,您可以部署 Kubernetes 叢集。 以系統管理員身分開啟 PowerShell,並執行下列 New-AksHciCluster 命令。 這個範例命令會建立新的 Kubernetes 叢集,其中一個名為 且節點計數為 1 的 Linux 節點集 linuxnodepool 區。

如需節點集區的詳細資訊,請參閱 在 AKS 中使用節點集區

New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1 -osType Linux

檢查您已部署的叢集

若要取得已部署 Kubernetes 叢集的清單,請執行下列 Get-AksHciCluster PowerShell 命令:

Get-AksHciCluster
ProvisioningState     : provisioned
KubernetesVersion     : v1.20.7
NodePools             : linuxnodepool
WindowsNodeCount      : 0
LinuxNodeCount        : 0
ControlPlaneNodeCount : 1
Name                  : mycluster

若要取得叢集中節點集區的清單,請執行下列 Get-AksHciNodePool PowerShell 命令:

Get-AksHciNodePool -clusterName mycluster
ClusterName  : mycluster
NodePoolName : linuxnodepool
Version      : v1.20.7
OsType       : Linux
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed

步驟 7:將您的叢集連線至已啟用 Arc 的 Kubernetes

執行 Enable-AksHciArcConnection 命令,將您的叢集連線到已啟用 Arc 的 Kubernetes。 下列範例會使用您在 命令中 Set-AksHciRegistration 傳遞的訂用帳戶和資源群組詳細資料,將您的 Kubernetes 叢集連線到 Arc:

Connect-AzAccount
Enable-AksHciArcConnection -name mycluster

注意

如果在安裝過程中遇到問題或錯誤訊息,請參閱安裝的已知問題和錯誤以取得詳細資訊。

縮放 Kubernetes 叢集

如果您需要擴大或縮小您的叢集,可以使用 Set-AksHciCluster 命令變更控制平面節點的數量。 如要變更您節點集區中 Linux 或 Windows 背景工作節點的數量,請使用 Set-AksHciNodePool 命令。

如要擴縮控制平面節點,請執行以下命令:

Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3

如要擴縮您節點集區中的背景工作節點,請執行以下命令:

Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3

注意

在前幾版的 Azure Stack HCI 和 Windows Server AKS 中,Set-AksHciCluster 命令也用於調整背景工作節點。 既然 AKS 在工作負載叢集中引進節點集區,只有在叢集是以 New-AksHciCluster中設定的舊參數所建立時,您只能使用此命令來調整背景工作節點。

若要縮放節點集區中的背景工作節點,請使用 Set-AksHciNodePool 命令。

使用 kubectl 存取叢集

若要使用 kubectl 存取 Kubernetes 叢集,請執行 Get-AksHciCredential PowerShell 命令。 這將使用指定叢集的 kubeconfig 檔案作為 kubectl 的預設 kubeconfig 檔案。 您也可以使用 kubectl 來 使用 Helm 部署應用程式

Get-AksHciCredential -name mycluster

刪除 Kubernetes 叢集

若要刪除 Kubernetes 叢集,請執行下列命令:

Remove-AksHciCluster -name mycluster

注意

請查看 Hyper-V 管理員中現有的 VM,確定叢集已刪除。 若未刪除,您可以手動刪除這些 VM。 然後,執行命令 Restart-Service wssdagent。 在容錯移轉叢集中的每個節點上執行此命令。

取得記錄

若要從所有的 Pod 中取得記錄,請執行 Get-AksHciLogs 命令。 此命令會在您的工作目錄中建立名為 的 akshcilogs.zip 輸出壓縮資料夾。 執行下列命令之後, akshcilogs.zip 資料夾的完整路徑就是輸出:

Get-AksHciLogs

在本快速入門中,您已瞭解如何使用 PowerShell 設定 AKS 主機和建立 Kubernetes 叢集。 您也已了解如何使用 PowerShell 縮放 Kubernetes 叢集以及如何使用 kubectl 存取叢集。

後續步驟