1.3.2.2. 从 2.2.x 升级到 2.3.4 可能会导致 klusterlet 删除

从 2.2.x 升级到 2.3.4 后,可能会删除 Klusterlet。请参阅以下流程来解决这个问题:

  1. 将 work-agent 升级到 2.3.3。

    1. 创建一个 JSON 文件 work-image-override.json,其中包含以下 JSON 内容:

      [
        {
          "image-name": "work-rhel8",
          "image-remote": "registry.redhat.io/rhacm2",
          "image-digest": "sha256:b6606f6bb6504acfb48f13cd5296473c17088caf380097ff7ce316f781c4f196",
          "image-key": "work"
        }
      ]
    2. 为 hub 集群上的镜像覆盖创建 ConfigMap:

      kubectl -n open-cluster-management create configmap work-image-override --from-file=./work-image-override.json
    3. 通过在 hub 集群中注解 mch 来启用镜像覆盖。

      kubectl -n open-cluster-management annotate mch multiclusterhub --overwrite mch-imageOverridesCM=work-image-override
    4. 重启 multiclusterhub-operator 以强制执行更改。

      kubectl -n open-cluster-management delete pod multiclusterhub-operator-xxxxx-xxxxx

    等待大约 30 分钟,确保所有受管集群上运行的 work-agent 都通过覆盖的镜像重启。

  2. 从 2.2.x 升级到 2.3.4。
  3. 为 work-agent 禁用镜像覆盖。
  4. 升级完成后,为 work-agent 删除镜像覆盖是安全的。

    kubectl -n open-cluster-management annotate mch multiclusterhub mch-imageOverridesCM- --overwrite
    kubectl -n open-cluster-management delete configmap work-image-override