教學課程:在 AKS 混合式上部署工作負載叢集
適用于:Azure Stack HCI 上的 AKS、Windows Server 上的 AKS
Kubernetes 會提供容器化應用程式的分散式平台。
在本教學課程中,AKS) 叢集Azure Kubernetes Service (第三部分部署在 AKS 混合式上。 您將學習如何:
- 在 Azure Stack HCI 上部署 AKS 叢集
- 安裝 Kubernetes CLI (kubectl)
- 設定 kubectl 以連線至工作負載叢集
在之後的教學課程中,Azure Vote 應用程式會部署至叢集、進行調整並加以更新。
開始之前
在先前的教學課程中,已建立容器映像並上傳到 Azure Container Registry 執行個體。 如果您尚未完成這些步驟,請從教學課程 1 - 建立容器映像開始。
本教學課程會使用 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 Kubernetes Service 主機
首先,您必須設定註冊設定。
Set-AksHciRegistration -subscription mysubscription -resourceGroupName myresourcegroup
您必須根據 Azure 訂用帳戶和資源群組名稱來自訂這些值。
然後,執行下列命令,以確保符合每個實體節點上的所有需求,以在 Azure Stack HCI 上安裝 AKS。
Initialize-AksHciNode
接下來,我們會建立虛擬網路。 您將需要取得可用外部交換器的名稱:
Get-VMSwitch
範例輸出:
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
extSwitch External Mellanox ConnectX-3 Pro Ethernet Adapter
執行下列命令,以建立具有靜態 IP 的虛擬網路。
$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -macPoolName myMacPool -k8sNodeIpPoolStart "172.16.10.0" -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
然後,使用下列命令來設定部署。
Set-AksHciConfig -imageDir c:\clusterstorage\volume1\Images -cloudConfigLocation c:\clusterstorage\volume1\Config -vnet $vnet -cloudservicecidr "172.16.10.10/16"
現在,您已準備好安裝 AKS 主機。
Install-AksHCi
建立 Kubernetes 叢集
使用 New-AksHciCluster 命令建立 Kubernetes 叢集。 下列範例會建立名為 mycluster 的叢集,其中包含一個名為 linuxnodepool 的 Linux節點集區,其節點計數為 1。
New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1
若要確認部署是否成功,請執行下列命令。
Get-AksHcicluster -name mycluster
輸出:
ProvisioningState : provisioned
KubernetesVersion : v1.20.7
NodePools : linuxnodepool
WindowsNodeCount : 0
LinuxNodeCount : 0
ControlPlaneNodeCount : 1
Name : mycluster
注意
如果您使用 中的 New-AksHciCluster
新參數集來部署叢集,然後執行 Get-AksHciCluster
以取得叢集資訊,則輸出中的欄位 WindowsNodeCount
和 LinuxNodeCount
將會傳回 0
。 若要取得每個節點集區中正確的節點數目,請使用命令 Get-AksHciNodePool
搭配指定的叢集名稱。
若要取得叢集中的節點集區清單,請執行下列 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
安裝 Kubernetes CLI
若要從本機電腦連線至 Kubernetes 叢集,您應使用 kubectl (Kubernetes 命令列用戶端)。
使用 kubectl 連線至叢集
若要設定 kubectl
以連線到 Kubernetes 叢集,請使用 Get-AksHciCredential 命令。 下列範例會針對名為 mycluster 的叢集取得認證。
Get-AksHciCredential -name mycluster
若要驗證叢集的連線,請執行 kubectl get nodes 命令以傳回叢集節點的清單:
kubectl get nodes
輸出:
NAME STATUS ROLES AGE VERSION
moc-lbs6got5dqo Ready <none> 6d20h v1.20.7
moc-lel7tzxdt30 Ready control-plane,master 6d20h v1.20.7
後續步驟
在本教學課程中,Kubernetes 叢集已部署在 AKS 中,且您已設定 kubectl
加以連線。 您已了解如何︰
- 在 Azure Stack HCI 上部署 AKS 叢集
- 安裝 Kubernetes CLI (kubectl)
- 設定 kubectl 以連線至您的 AKS 叢集
繼續進行下一個教學課程,以了解如何將應用程式部署至叢集。