在 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 設定。
注意
- 如果您有預先設置的叢集服務物件和 DNS 記錄,請參閱使用 PowerShell 部署包含預先設置叢集服務物件和 DNS 記錄的 AKS 主機。
- 如果您有 Proxy 伺服器,請參閱使用 PowerShell 和 Proxy 伺服器設定 AKS 主機及部署工作負載叢集。
- 不支援在設定 Arc VM 之後在 Azure Stack HCI 上安裝 AKS。 如需詳細資訊,請參閱 Arc VM 的已知問題。 如果您想要在 Azure Stack HCI 上安裝 AKS,您必須卸載 Arc 資源橋接器,然後在 Azure Stack HCI 上安裝 AKS。 清除並安裝 AKS 之後,您可以再次部署新的 Arc 資源橋接器,但不會記住您先前建立的 VM 實體。
開始之前
安裝 AksHci PowerShell 模組
在 Azure Stack HCI 叢集或 Windows Server 叢集的所有節點上遵循下列步驟:
注意
如要使用遠端 PowerShell,則必須使用 CredSSP。
關閉所有開啟的 PowerShell 視窗、以系統管理員身分開啟新的 PowerShell 會話,然後在 Azure Stack HCI 或 Windows Server 叢集中的所有節點上執行下列命令:
Install-PackageProvider -Name NuGet -Force Install-Module -Name PowershellGet -Force -Confirm:$false
您必須再次關閉所有現有的 PowerShell 視窗,以確保重新整理已載入的模組。 在您關閉所有開啟的 PowerShell 視窗之前,請勿繼續進行下一個步驟。
請在 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 命令。 您必須指定 imageDir
、workingDir
和 cloudConfigLocation
參數。 如果您想要重設設定詳細資料,請使用新的參數再次執行命令。
使用下列命令來設定部署:
$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
存取叢集。
後續步驟
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應