在 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 實體。
開始之前
安裝 AksHci PowerShell 模組
在 Azure 本機叢集或 Windows Server 叢集的所有節點上遵循下列步驟:
注意
如果您使用遠端 PowerShell,則必須使用 CredSSP。
關閉所有開啟的 PowerShell 視窗,以系統管理員身分開啟新的 PowerShell 會話,然後在 Azure 本機或 Windows Server 叢集中的所有節點上執行下列命令:
Install-PackageProvider -Name NuGet -Force Install-Module -Name PowershellGet -Force -Confirm:$false
您必須再次關閉所有現有的 PowerShell 視窗,以確保已載入的模組會重新整理。 在您關閉所有開啟的 PowerShell 視窗之前,請勿繼續進行下一個步驟。
在 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 命令。 您必須指定 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 本機和 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
存取叢集。