Nexus 平台运行时升级是由客户管理的中断性升级,用于更新操作员 Nexus 实例中服务器上的基础软件。 升级中的机架内计算服务器出现中断。 管理服务器升级被视为非中断性。
注释
Microsoft可能会传达客户需要采取的修补程序版本来解决关键安全或功能问题。
运行时发布范围
运行时升级旨在为实例中的每个服务器更新平台的基础组件。 运行时升级期间更新的一些组件示例包括作系统(OS)、云下的 kubernetes 群集、计算固件、etcd 群集和 CNI(容器网络接口)。 将重新映像每个服务器以加载所选运行时版本映像。
发布频率
主要/次要版本
次要运行时版本在 2 月、6 月和 10 月每年为计算基础结构生成三次。 发布后大约一年支持这些版本,客户无法跳过次要版本。
补丁版本
在次要版本发布之间,每月发布补丁运行时版本。 除非微软因特定功能或安全问题另有指示,否则这些版本是可选的。
工作流概述
启动运行时升级是在 通过 Azure CLI 升级群集运行时下定义的。
运行时升级首先升级指定为控制平面节点的三个管理服务器。 备用控制平面服务器是升级的第一台服务器。 最后一个控制平面服务器取消预配并转换为 Available 状态。 这些服务器是串行更新的,每个服务器更新完成后才继续。 其余管理服务器分为两个组。 运行时升级现在将利用两个管理组,而不是一个组。 每个组按顺序分两个阶段升级,每个组的成功阈值为50%。 引入此功能后,管理服务器上运行的组件可以通过应用关联规则来确保运行时升级期间的复原能力。 对于此版本,每个 CSN 将通过在每个管理组中放置一个实例来利用此功能。 没有客户与此功能交互。 管理节点上可能会显示其他标签来标识组。
注释
客户可能会看到具有不同运行时版本的备用服务器。 这是预期的。
升级所有管理服务器后,升级过程将继续到计算服务器。 每个机架都按字母数字顺序进行升级,并且客户可以使用各种配置来决定计算设备如何在尽量减少中断的情况下进行升级。 随着每个机架的升级过程,执行了各种健康检查,以确保升级成功完成,并且机架中有足够的计算服务器恢复到正常运行状态。 机架完成后,客户定义的等待时间开始为联机工作负载提供额外的时间。 每个机架升级完成后,升级即完成,群集将返回到Running状态。
运行群集运行时升级的步骤 位于此处。
运行时升级策略
解释的每个策略都为用户提供了各种控制,以控制计算机机架升级的方式和时间。 这些值仅适用于计算服务器,不适用于管理服务器。 每个策略都使用thresholdType和thresholdValue来定义在继续下一个机架之前机架中成功升级的计算服务器的数量或百分比。
阈值是在升级期间执行的计算,以确定完成升级后可用的计算服务器数。
逐个机架
运行时升级的默认行为会逐个循环访问每个机架,直到满足整个站点的阈值。
机架暂停
此策略将在机架完成升级后暂停升级。 在客户执行升级 API 之前,下一个机架不会启动。
有关如何暂停机架并运行升级的详细信息,请参阅此处。
群集运行时升级期间的 Nexus 租户工作负荷
在运行时升级期间,计划升级的服务器上运行的 Nexus Kubernetes 群集节点将被封锁、清空,然后在升级开始前正常关闭。 隔离节点可防止在节点上调度新 Pod,而清空则允许运行租户工作负载的 Pod 转移到其他可用节点,从而最大程度地减少服务中断。 排空的有效性取决于集群中的可用容量。 如果群集接近完整容量,并且缺少 Pod 重定位空间,则这些 Pod 在耗尽后进入挂起状态。
完成封锁和清空步骤后,节点将作为升级过程的一部分关闭。 裸机服务器升级后,节点将重新启动,重新加入集群,并解除隔离,允许在其上再次运行 Pod。
对于 Nexus VM,此过程类似。 在裸机服务器升级之前关闭 VM,并在服务器重新联机后自动重启。
每个租户群集节点最多允许 20 分钟才能完成清空过程。 在此时间窗口之后,服务器升级将继续进行,无论资源清理是否完成,以确保进度。 服务器一次升级一个机架,在同一机架中并行执行升级。 在继续升级机架中的其他服务器的运行时升级之前,服务器升级不会等待租户资源联机。 除了“排出”超时之外,还为 VM 关闭分配了 10 分钟的超时。 此方法可确保每个机架的最大等待时间保持 30 分钟,特定于封锁线、排水和关闭过程,而不是整体升级。
请务必注意,在运行时升级后,可能存在 Nexus Kubernetes 群集节点保持封锁的实例。 对于这种情况,您可以通过执行以下命令来查找解封锁节点。
az networkcloud baremetalmachine list -g $mrg --subscription $sub --query "sort_by([].{name:name,kubernetesNodeName:kubernetesNodeName,location:location,readyState:readyState,provisioningState:provisioningState,detailedStatus:detailedStatus,detailedStatusMessage:detailedStatusMessage,powerState:powerState,tags:tags.Status,machineRoles:join(', ', machineRoles),cordonStatus:cordonStatus,createdAt:systemData.createdAt}, &name)"
--output table
BareMetalMachine (BMM) 密钥集操作在集群运行时升级期间
升级服务器以利用新的 OS 时,必须使用新软件重新建立 BMM 密钥集。 在运行时升级完成实例后,此过程将启动。 尚未进行运行时升级的服务器仍可通过 BMM 密钥集进行访问。 如果在升级期间需要访问计算机,则控制台用户可用。
服务器未成功升级
如果服务器在重启期间从可能的硬件问题升级或预配失败,或者 cloud-init(网络、chronyd 等)出现问题,服务器将保持不可用。 需要解决根本条件,然后执行 baremetalmachine 更换或重建。 手动解除隔离服务器不会解决问题。