適用於:Windows Server 資料中心
這個快速入門指南會引導你如何設定 Azure Kubernetes Service (AKS) 主機。 你可以用 PowerShell 在 Windows Server 上建立 Kubernetes 叢集。 若想改用 Windows Admin Center,請參閱使用 Windows Admin Center 進行設定。
Note
- 如果你預先預置了叢集服務物件和 DNS 紀錄,請參考 使用 PowerShell 部署 AKS 主機與預設叢集服務物件與 DNS 紀錄。
- 如果你有代理伺服器,請參考「 設置 AKS 主機並用 PowerShell 和代理伺服器部署工作負載叢集」。
開始之前
安裝 AksHci PowerShell 模組
請在 Windows Server 叢集中的所有節點依照以下步驟操作:
Note
如果你使用遠端 PowerShell,必須使用 CredSSP。
關閉所有開啟的 PowerShell 視窗,以管理員身份開啟新的 PowerShell 會話,並在 Windows Server 叢集中的所有節點執行以下指令:
Install-PackageProvider -Name NuGet -Force Install-Module -Name PowershellGet -Force -Confirm:$false你必須再次關閉所有現有的 PowerShell 視窗,以確保已載入的模組被重新整理。 在關閉所有開啟的 PowerShell 視窗之前,不要繼續下一步。
透過在 Windows Server 叢集中的所有節點執行以下指令來安裝 AksHci 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 啟用適當的資源提供者來進行 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:為部署作好機器的準備
對每個實體節點進行檢查,確認安裝 AKS 的所有需求是否都符合。 以管理員身份開啟 PowerShell,並在 Windows Server 叢集中的所有節點執行以下 Initialize-AksHciNode 指令:
Initialize-AksHciNode
步驟二:建立虛擬網路
在你的 Windows Server 叢集中任一個節點執行以下指令。
要取得可用交換器的名稱,請執行以下指令。 確保 SwitchType 你的虛擬機交換器是 外部的:
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
Note
您必須針對您的環境自定義此範例命令中顯示的值。
步驟 3:配置您的部署
請在 Windows Server 叢集中的任何節點執行以下指令。
要建立 AKS 主機的設定,請使用 Set-AksHciConfig 指令。 你必須指定 imageDir、 和 workingDircloudConfigLocation 參數。 如果您想要重設組態詳細數據,請使用新的參數再次執行命令。
使用下列命令設定您的部署:
$csvPath = 'C:\clusterstorage\volume01' # Specify your preferred CSV path
Set-AksHciConfig -imageDir $csvPath\Images -workingDir $csvPath\ImageStore -cloudConfigLocation $csvPath\Config -vnet $vnet
Note
你必須根據你的環境自訂這個範例指令中顯示的值,但你不能更改主機或 Kubernetes 叢集上的虛擬機名稱。
步驟 4:登入 Azure 並設定註冊設定
選項一:如果你有「擁有者」權限,請使用 Microsoft Entra 帳號
請以訂閱名稱和資源群組名稱執行以下 Set-AksHciRegistration PowerShell 指令,登入 Azure。 您必須擁有 Azure 訂閱,並且在澳洲東部、美國東部、東南亞或西歐的 Azure 區域內已有現有的 Azure 資源群組:
Set-AksHciRegistration -subscriptionId "<subscriptionId>" -resourceGroupName "<resourceGroupName>"
選項二:使用 Azure 服務主體
如果你無法存取你身為 Owner 的訂用帳戶,可以使用服務主體將 AKS 主機註冊到 Azure 以進行計費。 如需更多關於如何使用服務主體的資訊,請參閱 在 Windows Server 上使用服務主體註冊 AKS。
步驟五:開始新的部署
在 Windows Server 叢集中的任何節點執行以下指令。
配置完後,必須啟動部署才能安裝 AKS 代理程式和服務,以及 AKS 主機。 要開始部署,請執行以下指令:
Tip
安裝過程中若想查看更多狀態細節,請先設定 $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
Note
若在安裝過程中遇到問題或錯誤訊息,請參閱 「安裝已知問題與錯誤 」以獲得更多資訊。
擴展 Kubernetes 叢集
如果你需要放大或縮小叢集,可以用 Set-AksHciCluster 指令來調整控制平面節點的數量。 要更改節點池中 Linux 或 Windows 工作節點的數量,請使用 Set-AksHciNodePool 指令。
要縮放控制平面節點,請執行以下指令:
Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3
要擴展節點池中的工作節點,請執行以下指令:
Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3
Note
在 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
Note
請確認你的叢集已被刪除,方法是查看 Hyper-V Manager 裡現有的虛擬機。 如果它們沒有被刪除,你可以手動刪除虛擬機。 接著執行指令 Restart-Service wssdagent。 在故障轉移叢集的每個節點執行這個指令。
取得記錄
若要擷取所有 Pod 的記錄,請執行 Get-AksHciLogs 命令。 這個指令會在你的工作目錄中建立一個壓縮 akshcilogs.zip 的輸出資料夾。 執行以下指令後,資料夾 akshcilogs.zip 的完整路徑為輸出:
Get-AksHciLogs
在這份快速入門中,你學會了如何架設 AKS 主機並使用 PowerShell 建立 Kubernetes 叢集。 你也學會了如何使用 PowerShell 擴展 Kubernetes 叢集,並用 kubectl 存取叢集。