升级 Harvester

升级支持矩阵

下表介绍了版本的升级路径:

原版本支持的新版本
v1.1.2v1.2.0
v1.1.0, v1.1.1v1.1.2
v1.0.3v1.1.0, v1.1.1(建议使用 v1.1.1)
v1.0.2v1.0.3
v1.0.1v1.0.2
v1.0.0v1.0.1

开始升级

我们仍在努力实现零停机升级。请在升级 Harvester 集群之前按照以下步骤操作:

升级 Harvester - 图1警告

  • 在升级 Harvester 集群之前,我们强烈建议:
    • 要从 v1.0.3 升级到 v1.1.0/v1.1.1,请先关闭所有虚拟机(Harvester GUI > Virtual Machines > 选择虚拟机 > Actions > Stop)。查看链接了解更多信息。
    • 如果需要,备份虚拟机。
  • 不要在升级期间操作集群,例如,创建新的虚拟机、上传新的镜像等。
  • 确保你的硬件符合首选硬件要求。这是因为升级会消耗中间资源。
  • 确保每个节点至少有 30 GiB 的可用系统分区空间 (df -h /usr/local/)。如果集群中任何节点的可用系统分区空间少于 30 GiB,升级将被拒绝。有关更多信息,请参阅空闲系统分区空间要求

升级 Harvester - 图2警告

  • 确保所有节点的时间同步。建议使用 NTP 服务器来同步时间。如果你在安装期间没有配置 NTP 服务器,你可以在每个节点上手动添加一个 NTP 服务器:

    1. $ sudo -i
    2. # 添加时间服务器
    3. $ vim /etc/systemd/timesyncd.conf
    4. [ntp]
    5. NTP=0.pool.ntp.org
    6. # 启用并启动 systemd-timesyncd
    7. $ timedatectl set-ntp true
    8. # 检查状态
    9. $ sudo timedatectl status

升级 Harvester - 图3警告

  • 连接到 PCI 网桥的 NIC 可能会在升级后重命名。请查看知识库了解更多信息。

  • 请务必先阅读本文档顶部的警告内容。

  • Harvester 会定期检查是否有新的可升级版本。如果有新版本,仪表板页面上会显示升级按钮。

    • 如果集群处于离线环境中,请先参阅准备离线升级。你还可以使用该部分中的方法加速 ISO 下载。
  • 导航到 Harvester GUI,然后单击仪表板页面上的升级按钮:

    升级 Harvester - 图4

  • 选择要升级的版本:

    升级 Harvester - 图5

  • 单击顶部的圆圈以显示升级进度: 升级 Harvester - 图6

准备离线升级

升级 Harvester - 图7警告

请务必先查看升级支持矩阵了解可升级的版本。

  • Releases 页面下载 Harvester ISO 文件。

  • 将 ISO 保存到本地 HTTP 服务器。假设文件托管在 http://10.10.0.1/harvester.iso 中。

  • 从 Releases 页面下载版本文件,例如 https://releases.rancher.com/harvester/{version}/version.yaml

    • 替换 version.yaml 文件中的 isoURL 值:

      1. apiVersion: harvesterhci.io/v1beta1
      2. kind: Version
      3. metadata:
      4. name: v1.0.2
      5. namespace: harvester-system
      6. spec:
      7. isoChecksum: <SHA-512 checksum of the ISO>
      8. isoURL: http://10.10.0.1/harvester.iso # change to local ISO URL
      9. releaseDate: '20220512'
    • 假设文件托管在 http://10.10.0.1/version.yaml 中。

  • 登录到其中一个 control plane 节点。

  • 成为 root 并创建一个版本:

    1. rancher@node1:~> sudo -i
    2. rancher@node1:~> kubectl create -f http://10.10.0.1/version.yaml
  • Harvester GUI Dashboard 页面上应显示升级按钮。

空闲系统分区空间要求

从 v1.2.0 起可用

Harvester v1.2.0 要求的最小空闲系统分区空间为 30 GiB,每个版本都会对此进行修改。

选择 Upgrade 时,Harvester 将检查每个节点上的可用系统分区空间量。如果任何节点不满足要求,升级将被拒绝,如下:

升级 Harvester - 图8

如果某些节点没有足够的可用系统分区空间,但你仍想尝试升级,你可以通过更新 Version 对象的 harvesterhci.io/minFreeDiskSpaceGB 注释来自定义升级。

  1. apiVersion: harvesterhci.io/v1beta1
  2. kind: Version
  3. metadata:
  4. annotations:
  5. harvesterhci.io/minFreeDiskSpaceGB: "30" # the value is pre-defined and may be customized
  6. name: 1.2.0
  7. namespace: harvester-system
  8. spec:
  9. isoChecksum: <SHA-512 checksum of the ISO>
  10. isoURL: http://192.168.0.181:8000/harvester-master-amd64.iso
  11. minUpgradableVersion: 1.1.2
  12. releaseDate: "20230609"

升级 Harvester - 图9警告

如果你设置的值小于预定义的值,升级可能会失败,不建议在生产环境中使用。