共用方式為


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

適用於:Azure 本機或 Windows Server 數據中心

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

注意

  • 如果您有預先暫存的叢集服務物件和 DNS 記錄,請參閱 使用 PowerShell 部署具有預先設置叢集服務物件和 DNS 記錄的 AKS 主機。
  • 如果您有 Proxy 伺服器,請參閱 設定 AKS 主機並使用 PowerShell 和 Proxy 伺服器部署工作負載叢集。
  • 不支援在設定 Arc VM 之後,在 Azure 本機安裝 AKS。 如需詳細資訊,請參閱 Arc VM的已知問題。 如果您想要在 Azure 本機上安裝 AKS,您必須卸載 Arc Resource Bridge,然後在 Azure 本機上安裝 AKS。 清除並安裝 AKS 之後,您可以再次部署新的 Arc 資源網橋,但不會記得您先前建立的 VM 實體。

開始之前

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

安裝 AksHci PowerShell 模組

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

注意

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

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

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

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

  2. 在 Azure 本機或 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 Arc 的 Kubernetes 資源提供者註冊 Azure 訂用帳戶。 此註冊程式最多可能需要 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 本機和 Windows Server 叢集中的所有節點上執行下列 Initialize-AksHciNode 命令:

Initialize-AksHciNode

步驟 2:建立虛擬網路

在 Azure 本機和 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 本機和 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 本機和 Windows Server 上註冊 AKS。

步驟 5:開始新的部署

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

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

提示

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

Install-AksHci

警告

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

步驟 6:建立 Kubernetes 叢集

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

如需節點集區的詳細資訊,請參閱 在 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 本機和 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存取叢集。

下一步