停止并重启Azure Kubernetes 服务群集
适用于:Azure Local 22H2 上的 AKS、Windows Server 上的 AKS
在 Azure Arc 启用的 AKS 中,工作负荷可能不需要持续运行。 若要节省资源成本,可以停止(或关闭)Azure Kubernetes 服务 (AKS) 群集。 若要停止群集,请从 Hyper-V 主机运行本文中所述的命令,以关闭不同的组件。 本文还介绍了如何重启已停止的群集,以及如何验证控制平面节点在重启后是否正在运行。
开始之前
本文假定计算机上已安装并配置了现有的 Kubernetes 群集。 如果需要安装群集,请参阅 AKS Arc 快速入门来 设置 AKS 主机并部署工作负荷群集。
停止群集
若要停止(或关闭)群集,必须停止群集服务,然后停止本地和/或远程计算机。
停止群集服务
使用 Stop-Cluster PowerShell 命令关闭群集,并停止群集中的所有节点上的群集服务。 运行此命令将停止群集中配置的所有服务和应用程序。
重要
运行 Stop-Cluster
时,群集中所有其他节点和基于 VM 的应用程序都会受到影响。
若要停止本地群集的所有节点上的群集服务,请以管理员身份打开 PowerShell,并在群集中的某个计算机上运行以下命令:
Stop-Cluster
运行命令后,键入 Y(是) 以确认要停止群集。
注意
如果在同一台计算机或群集中的多台计算机上运行 Stop-Cluster
两次,则会收到一条消息,指出“没有运行群集服务”。
停止本地和远程计算机
若要关闭本地计算机和远程计算机,请使用 Stop-Computer PowerShell 命令:
Stop-Computer
启动群集
若要重启已停止的群集,请先在本地和/或远程计算机上重启操作系统,然后重启群集。
若要在本地和远程计算机上重启操作系统,请使用以下 Restart-Computer PowerShell 命令:
Restart-Computer
若要重启群集的所有节点,请使用 Start-Cluster PowerShell 命令:
Start-Cluster
节点只能在群集服务运行时充当群集的一部分。
注意
无法在服务器计算机上远程运行 Start-Cluster
CredSSP 身份验证。
若要验证群集是否已启动,请使用 Get-ClusterNode PowerShell 命令,如以下示例所示:
Get-ClusterNode -ErrorAction SilentlyContinue | foreach-object {
$node = $_.Name
$state = $_.State
Write-Host "$node State = $state"
}
输出类似于以下群集节点列表:
TK5-3WP15R1625 State = Up
TK5-3WP15R1627 State = Up
TK5-3WP15R1629 State = Up
TK5-3WP15R1631 State = Up
验证控制平面节点是否正在运行
若要验证控制平面节点是否正在运行,请枚举 VM,并确保其状态正在运行。
若要查看 Hyper-V 主机中控制平面 VM 的状态,请在包含管理群集控制平面 VM 的物理计算机上运行以下 PowerShell 命令:
$controlPlanes = Get-VM | ? { $_.Name -like '*-control-plane-*' -and $_.State -eq 'Running' } | % { $_.Name }
此处显示了示例输出。 如果在具有控制平面 VM 的计算机上运行此命令,则会收到空输出:
c8bf39ad-67bd-4a7d-ac77-638be6eecf46-control-plane-0-d38498de
my-cluster-control-plane-q9mbp-ae97a3e5
如果控制平面节点未运行,请通过运行以下 PowerShell 命令重启 VM:
Restart-VM -name $vmName -force