Harvester v1.9.0 发行说明
此版本引入了多项功能、增强功能和错误修复,提升了系统质量和整体用户体验。文档可在 https://docs.harvesterhci.io/v1.9 查阅。
Harvester 团队感谢您的贡献,并期待收到有关此版本的反馈。
下载
AMD64
完整 ISO
https://releases.rancher.com/harvester/v1.9.0/harvester-v1.9.0-amd64.iso
https://releases.rancher.com/harvester/v1.9.0/harvester-v1.9.0-vmlinuz-amd64
https://releases.rancher.com/harvester/v1.9.0/harvester-v1.9.0-initrd-amd64
https://releases.rancher.com/harvester/v1.9.0/harvester-v1.9.0-rootfs-amd64.squashfs
https://releases.rancher.com/harvester/v1.9.0/harvester-v1.9.0-amd64.sha512
https://releases.rancher.com/harvester/v1.9.0/version.yaml
网络安装 ISO
https://releases.rancher.com/harvester/v1.9.0/harvester-v1.9.0-amd64-net-install.iso
ARM64
https://releases.rancher.com/harvester/v1.9.0/harvester-v1.9.0-arm64.iso
https://releases.rancher.com/harvester/v1.9.0/harvester-v1.9.0-vmlinuz-arm64
https://releases.rancher.com/harvester/v1.9.0/harvester-v1.9.0-initrd-arm64
https://releases.rancher.com/harvester/v1.9.0/harvester-v1.9.0-rootfs-arm64.squashfs
https://releases.rancher.com/harvester/v1.9.0/harvester-v1.9.0-arm64.sha512
https://releases.rancher.com/harvester/v1.9.0/version-arm64.yaml
安装
Harvester 可以使用 ISO 镜像、可启动 USB 驱动器 和 PXE 启动 进行安装。有关更多信息,请参阅文档的 安装 部分。
升级
Harvester 仅允许从受支持的版本进行升级。有关升级路径和程序的更多信息,请参阅 升级 Harvester。
[!WARNING]
目前不建议升级到 v1.9.0,因为存在已知问题会导致虚拟机强制关闭,从而导致短暂的业务中断(见问题 #11356 和 #11615)。永久修复计划在 v1.9.1 中发布。如果您现在必须升级到 v1.9.0,可以通过在开始升级前在集群中设置通用的 CPU 模型(例如
IvyBridge)来缓解 问题 #11356。kubectl patch kubevirt kubevirt -n harvester-system \ --type merge \ -p '{"spec":{"configuration":{"cpuModel":"IvyBridge"}}}'或者,单独更新每个虚拟机的 CPU 模型。
CPU 模型更改需要重启运行中的虚拟机。提前应用此更改可让您掌控重启计划,以便在计划窗口内进行维护,而不是让升级触发意外关闭。
此外,对于
cores * threads > 1的 CPU 拓扑结构的虚拟机,自动热迁移会失败(见 问题 #11615)。迁移失败并提示错误guest CPU doesn't match specification: extra features: ht,升级将关闭受影响的虚拟机。设置通用 CPU 模型无法缓解此问题。在开始升级前,请优雅地关闭具有此类 CPU 拓扑结构的虚拟机,并在升级完成后手动启动它们。
亮点
在 Kube-OVN Overlay 网络上配置下游集群
Harvester v1.9.0 增加了对在连接到 Kube-OVN Overlay 网络的虚拟机上配置 Rancher 下游集群的支持。此设置支持租户隔离的 VPC 和独立于物理基础设施的 Kubernetes 原生网络。通过 Harvester Node Driver 配置虚拟机时,您可以直接将它们分配给 Overlay 网络,并使用 VPC NAT 网关(DNAT/SNAT)进行外部连接。
演示:纯 Underlay 网络, 用于 Overlay 网络的 VPC NAT 网关, Kube-OVN 网络上的 Rancher 下游集群 | 文档 | GitHub 问题
Longhorn V2 数据引擎增强(技术预览版)
Harvester v1.9.0 将 Longhorn V2 数据引擎推进到“技术预览版”(此前为“实验性”),带来了关键的性能和配置改进。此版本消除了之前的 AIO 驱动程序块大小(4096 字节)和 unmap 限制,支持完整的 512 字节块大小以及更好的存储空间回收。为了支持资源受限的部署,新的集群设置允许您自定义 SPDK target daemon 内存分配(longhorn-v2-data-engine-memory-size),并在使用默认 AIO bdev 驱动程序时可选禁用 hugepages(longhorn-v2-data-engine-hugepage-enabled),从而在管理 Node 内存压力时提供更大的灵活性。
驱逐(Cordon)新加入的非见证节点选项
从 Harvester v1.9.0 开始,您可以配置新加入的非见证节点在初始化时处于驱逐状态,防止工作负载在部署后立即调度到这些节点上。这允许您在向集群开放新主机容量之前进行安装后的配置、验证或维护。要启用此行为,请在 Harvester 配置文件中设置 install.cordoned: true。指定后,节点在加入集群时会自动标记为不可调度。安装后任务完成后,您可以使用 Harvester UI 上的 Uncordon 选项使节点可用于工作负载。
并行热迁移
Harvester v1.9.0 引入了对多虚拟机并发热迁移的支持。UI 上的 Virtual Machines 屏幕允许您选择多个虚拟机并为整个组启动迁移。在迁移对话框中,选定的虚拟机按其当前节点分组,方便您识别目标目的地。启动后,Harvester 会并发处理一批迁移,并在活动迁移完成后自动开始迁移剩余的虚拟机。这简化了跨集群的主机维护和工作负载重平衡。
Harvester 节点上的容器化 GPU 工作负载
从 v1.9.0 开始,您可以直接在 Harvester 节点上运行容器化 GPU 工作负载,与基于虚拟机的 GPU 工作负载并存。要区分这些节点,您必须应用指定的标签并在 Harvester 集群中部署 NVIDIA GPU Operator。该 Operator 会自动仅针对指定用于裸机工作负载的节点,实现对 GPU 资源的本地容器访问,同时让其余节点可用于启用 vGPU 的虚拟机。
支持自定义 Windows Sysprep 文件
Harvester v1.9.0 允许您使用自定义 Sysprep 应答文件(用于全新 ISO 安装的 autounattend.xml 或用于通用镜像的 unattend.xml)来自动部署 Windows 操作系统,而不是依赖标准的 cloud-init 配置。在虚拟机创建屏幕的 Advanced Options 选项卡上,您可以选择或创建一个包含应答文件脚本的 Kubernetes Secret。Harvester 利用 KubeVirt 的原生 Sysprep 支持将 Secret 挂载为虚拟 SATA CD-ROM 驱动器,Windows 会在启动期间自动检测该驱动器以处理磁盘分区、用户创建或域加入。
注意:UI 在创建 secret 时提供内置的 XML 验证。在 v1.9.0 中,Sysprep 配置必须在单个虚拟机创建期间直接应用。虚拟机模板支持将在未来版本中添加。
针对 Windows 虚拟机和模板优化默认设置
在 Harvester 中创建 Windows 虚拟机或模板时,现在会自动应用为性能优化的默认值,以确保 Guest 运行的一致性。基础 Windows 模板上根磁盘的默认磁盘总线现在是 SCSI (virtio-scsi) 而不是 VirtIO (virtio-blk),提供多队列支持和在持续写入期间更快的 DISCARD 操作。此外,默认启用 Hyper-V TLFS enlightenments 以简化定时器和中断处理,消除周期性 I/O 延迟峰值以及重型存储工作负载期间的吞吐量下降。Harvester 还为 Windows 镜像启用了 cloud-config 编辑器,允许您在初始设置期间传递 cloud-init 用户数据,以自动执行诸如用户创建、SSH 密钥部署和自定义 PowerShell 执行等首次启动任务。
下游集群非管理接口上的负载均衡器
从 Harvester v1.9.0 开始,您可以将下游集群负载均衡器流量通过辅助虚拟机网络路由,而不是仅将虚拟 IP 绑定到主管理接口。这提供了专用的流量隔离、安全细分和性能隔离。在 DHCP 或 Pool 模式下配置 LoadBalancer 服务时,选择在所有节点上对称分配的目标虚拟机网络。请确保在部署前配置了匹配的虚拟机网络和 IP 池。
注意:UI 配置需要 Rancher v2.15.1 或更高版本,而早期受支持版本则依赖 API 注解。此外,使用源 IP 保留的外部流量可能需要自定义主机路由规则以防止异步路由。
通过 virtiofs 直接挂载 Kubernetes Service Account
Harvester v1.9.0 允许将 Kubernetes ServiceAccounts、Secrets 和 ConfigMaps 作为实时 virtiofs 文件系统直接挂载到虚拟机中。这为工作负载提供了一个安全的、原生的 Kubernetes 身份来查询集群 API,而无需硬编码凭据。由于 virtiofs 维护一个实时的投影文件系统,Token 轮换和 RBAC 权限更改会在 Guest 操作系统中实时更新,无需重启。在 UI 上配置磁盘时,选择 Filesystem 以从虚拟机的命名空间中选择资源,然后在 cloud-init 脚本中添加相应的挂载命令,将 virtiofs 设备映射到 Guest 目录(例如 /mnt)。
下游集群 CPU 模型选择
从 Harvester v1.9.0 开始,您可以在使用 Harvester Node Driver 配置下游集群时选择自定义 CPU 模型。创建集群时,新的 CPU Model 下拉列表允许您选择 Default、host-model、host-passthrough 或特定的 CPU 模型。对于指定的 CPU 模型,UI 会在每个条目旁边显示节点可用性(例如 Ready nodes: 1),帮助您选择兼容的配置并确保下游节点之间 CPU 能力的一致性。
保持还原或克隆的虚拟机处于关机状态选项
从 Harvester v1.9.0 开始,从快照、克隆或备份创建的虚拟机不再自动开机。要在创建后保持虚拟机停止状态,请在 UI 上选择 Remain halted 选项,或在 VirtualMachineRestore CRD 或虚拟机清单中设置 spec.haltAfterRestore: true。这为 GitOps 工作流提供了在将工作负载联机之前完成还原后验证的时间。
基于 UI 的 Pod 安全标准配置
Harvester v1.9.0 通过允许您使用新的 cluster-pod-security-standard 设置直接从 UI 应用 Kubernetes Pod 安全标准 (PSS),简化了集群级治理。启用后,您可以通过配置 Whitelisted Namespaces、Privileged Namespaces 和 Restricted Namespaces 字段在环境中实施特定的安全配置文件。为了保护核心系统操作并保证 Harvester 的稳定性,系统命名空间会被自动锁定并免于自定义 PSS 修改。
管理接口详情可见性
从 Harvester v1.9.0 开始,Cluster Network Configuration 屏幕为所有非见证节点提供了增强的管理网络接口可见性。您现在可以直接在 UI 上查看 mgmt-bo 的基本配置详细信息(例如成员接口、MTU 大小和活动绑定模式),这些信息会自动从实时主机状态同步。为了保护主机连接,管理网络设置严格为只读,并通过 Webhook 主动拦截任何通过 UI 或 API 进行的手动修改尝试。
可编辑的虚拟机显示名称
在 Harvester v1.9.0 UI 上,虚拟机创建屏幕包含一个 Display Name 字段,允许进行灵活的标注,没有严格的字符类型或长度限制。它不同于 Name 字段(定义自定义资源名称,必须符合标准 Kubernetes 命名规范),也不同于 Hostname 字段(定义 Guest 操作系统内的虚拟机主机名,可用于创建唯一的 DNS 记录)。您可以在虚拟机生命周期的任何阶段更新显示名称,而不会影响其配置。
自定义包和内核模块安装
Harvester v1.9.0 引入了标准化工作流,用于在不影响安全性或升级路径的情况下,使用第三方软件、内核模块和系统包扩展其不可变操作系统。通过新的 rancher/harvester-kernel-module-devel 镜像和 Elemental chroot 钩子,您可以构建并签署内核模块,加载运行时或启动时驱动程序,并跨系统升级持久安装与 SUSE Linux Enterprise 16.0 兼容的软件包。
演示 | 文档 | GitHub 问题:#11263, #11264
弃用与移除
ssl-parameters 设置
Ingress NGINX Controller (ingress-nginx) 的 ssl-parameters 设置在 Harvester v1.9.0 中已弃用,并被 traefik-default-tls-options 设置取代,该设置会为 Traefik Ingress Controller 应用默认的 TLS 选项。
striped 卷类型
striped 卷类型已弃用,并从 LVM CSI 正式发布 (GA) 支持范围中排除。所有 LVM 存储必须使用 dm-thin StorageClass。由于现有的 striped 卷无法就地转换为 dm-thin,因此在升级到移除此卷类型支持的 Harvester 版本之前,您必须从现有的 striped 卷迁移数据。
功能
- [FEATURE] 添加 harvester-kernel-module-devel 镜像 #11263
- [FEATURE] 在 UI 中置灰升级按钮 #11159
- [FEATURE] Windows 虚拟机默认值:virtio-scsi 总线,启用 cloud-init,Hyper-V enlightenments #11124
- [FEATURE] 微调节点晋升逻辑 #11074
- [FEATURE] [GUI] 在 UI 中显示管理 NIC、MTU 和接口 #10718
- [FEATURE] 从 vSphere 获取虚拟机列表的 API #10606
- [FEATURE] 升级 kubeovn operator 以支持 kubeovn 1.16.x #10476
- [FEATURE] 通过 Kubernetes Service accounts 为运行中的虚拟机提供身份 #10426
- [FEATURE] 新虚拟机导入/迁移工具的 UX/UI #10417
- [FEATURE] [GUI] Harvester 的 PSA 支持 #10350
- [FEATURE] 在 UI 中实施 Rancher RBAC #10241
- [FEATURE] 使用 KubeOVN 支持物理网络 VLAN 上直接可路由的虚拟机 IP #10154
- [FEATURE] [GUI] 支持虚拟机的 filesystem 磁盘 #9896
- [FEATURE] 为 harvester-cloud-provider 添加 extraArgs #9852
- [FEATURE] [GUI] 下游集群需要 CPU 模型配置设置 #9745
- [FEATURE] Rancher 中下游集群需要 CPU 模型配置设置 #9744
已知问题
本节仅包含发布日期前识别的问题。有关与 v1.9.0 相关的所有问题的信息,请参阅 此页面。
- [BUG] 从 v1.8.2 升级到 v1.9-head 的 ARM 升级失败 #11648
- [BUG] 升级期间丢失 VIP 和 UI 访问权限(ARM 集群) #11634
- [BUG] 从 1.8.2 升级到 1.9.0-rc7 时,由于 CPU 额外特征 ht 导致虚拟机热迁移失败 #11615
- [BUG] 从 v1.8.2 升级到 v1.9-head 停滞在镜像预加载阶段 #11543
- [BUG] 注销功能无法正常工作 #11386
- [BUG] 从 v1.8.1 升级到 v1.9.0-rc4 时,虚拟机不会热迁移而是关闭 #11356
组件版本
| 组件 | 版本 |
|---|---|
| Longhorn | v1.12.1 |
| KubeVirt | v1.8.4 |
| CDI | v1.65.0 |
| Kube-OVN | v1.16.2 |
| Embedded Rancher | v2.15.0 |
| RKE2 | v1.36.3+rke2r1 |
| SL Micro | 6.2 |
贡献者
感谢所有使此版本成为可能的贡献者。
原文发布地址: harvester/harvester v1.9.0