停止并重启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 

后续步骤