6.2.4. 使用 Ansible 升级现有版本


6.2.4.1. 升级 Heketi Server

必须在客户端计算机上执行以下命令。

注意

如果 OCS 3.10 通过 Ansible 部署,则不需要使用 "yum update cns-deploy -y"。

  1. 执行以下步骤停止 Heketi pod,以防止它接受任何新卷创建或卷删除请求:

    1. 执行以下命令访问项目:

      # oc project <project_name>

      例如:

      # oc project storage-project
    2. 执行以下命令以获取 DeploymentConfig

      # oc get ds
    3. 执行以下命令,将 heketi 服务器设置为仅接受来自 local-client 的请求:

      # heketi-cli server mode set local-client
    4. 等待持续操作完成,并执行以下命令来监控是否有持续操作:

      # heketi-cli server operations info
  2. 备份 Heketi 数据库文件

    # heketi-cli db dump > heketi-db-dump-$(date -I).json
    注意

    创建的 json 文件可用于恢复,因此应存储在您选择的持久性存储中。

  3. 执行以下命令来更新 heketi 客户端软件包。更新其安装的所有 OCP 节点上的 heketi-client 软件包。较新的安装可能没有在任何 OCP 节点上安装了 heketi-client rpm:

    # yum update heketi-client -y
  4. 执行以下命令以获取当前的 HEKETI_ADMIN_KEY:

    只要其基础架构不使用,OCS 管理员可以选择为用户密钥设置任何短语。它没有被任何 OCS 默认安装的资源使用。

    # oc get secret heketi-registry-admin-secret -o jsonpath='{.data.key}'|base64 -d;echo
  5. 如果之前设置了 HEKETI_USER_KEY,您可以使用以下命令获取它:

    # oc describe pod <heketi-pod>
  6. 执行以下步骤编辑模板:

    1. 如果现有模板有 IMAGE_NAME,则编辑模板以更改 HEKETI_USER_KEY、HEKETI_ADMIN_KEY、HEKETI_ROUTE、IMAGE_NAME、CLUSTER_NAME 和 HEKETI_LVM_WRAPPER 示例。

      # oc edit template heketi
      parameters:
      - description: Set secret for those creating volumes as type user
        displayName: Heketi User Secret
        name: HEKETI_USER_KEY
        value: <heketiuserkey>
      - description: Set secret for administration of the Heketi service as user admin
        displayName: Heketi Administrator Secret
        name: HEKETI_ADMIN_KEY
        value: <adminkey>
      - description: Set the executor type, kubernetes or ssh
        displayName: heketi executor type
        name: HEKETI_EXECUTOR
        value: kubernetes
      - description: Set the hostname for the route URL
        displayName: heketi route name
        name: HEKETI_ROUTE
        value: heketi-registry
      - displayName: heketi container image name
        name: IMAGE_NAME
        required: true
        value: registry.redhat.io/rhgs3/rhgs-volmanager-rhel7:v3.11.8
      - description: A unique name to identify this heketi service, useful for running
        multiple heketi instances
        displayName: GlusterFS cluster name
        name: CLUSTER_NAME
        value: registry
      - description: Heketi can use a wrapper to execute LVM commands, i.e. run commands in the host namespace instead of in the Gluster container
        name: HEKETI_LVM_WRAPPER
        displayName: Wrapper for executing LVM commands
        value: /usr/sbin/exec-on-host
    2. 如果现有模板的 IMAGE_NAME 和 IMAGE_VERSION 为两个参数,请编辑模板以更改 HEKETI_USER_KEY、HEKETI_ADMIN_KEY、HEKETI_ROUTE、IMAGE_NAME、IMAGE_VERSION、CLUSTER_NAME 和 HEKETI_LVM_RAPPER,如下例所示。

      # oc edit template heketi
      parameters:
      - description: Set secret for those creating volumes as type user
        displayName: Heketi User Secret
        name: HEKETI_USER_KEY
        value: <heketiuserkey>
      - description: Set secret for administration of the Heketi service as user admin
        displayName: Heketi Administrator Secret
        name: HEKETI_ADMIN_KEY
        value: <adminkey>
      - description: Set the executor type, kubernetes or ssh
        displayName: heketi executor type
        name: HEKETI_EXECUTOR
        value: kubernetes
      - description: Set the hostname for the route URL
        displayName: heketi route name
        name: HEKETI_ROUTE
        value: heketi-registry
      - displayName: heketi container image name
        name: IMAGE_NAME
        required: true
        value: registry.redhat.io/rhgs3/rhgs-volmanager-rhel7
      - displayName: heketi container image version
        name: IMAGE_VERSION
        required: true
        value: v3.11.8
      - description: A unique name to identify this heketi service, useful for running multiple heketi instances
        displayName: GlusterFS-registry cluster name
        name: CLUSTER_NAME
        value: registry
      - description: Heketi can use a wrapper to execute LVM commands, i.e. run commands in the host namespace instead of in the Gluster container
        name: HEKETI_LVM_WRAPPER
        displayName: Wrapper for executing LVM commands
        value: /usr/sbin/exec-on-host
      注意

      如果集群有超过 1000 个卷,请参阅 如何更改 Openshift Container Storage 的默认 PVS 限制 ,并在进行升级前添加必要的参数。

  7. 执行以下命令删除 heketi 的部署配置、服务和路由:

    # oc delete deploymentconfig,service,route heketi-registry
  8. 执行以下命令来部署用于为 OpenShift 创建持久性卷的 Heketi 服务、路由和部署配置:

    # oc process heketi | oc create -f -
    
    service "heketi-registry" created
    route "heketi-registry" created
    deploymentconfig-registry "heketi" created
    注意

    建议为数据库工作负载调整 heketidbstorage 卷。新安装的 Openshift Container Storage 部署会自动调整 heketidbstorage 卷。对于旧的部署,请按照 KCS 文章 规划在 Openshift Container Storage 上运行容器化 DB 或 nosql 工作负载? 并为卷 heketidbstorage 执行卷设置操作。

  9. 执行以下命令来验证容器是否正在运行:

    # oc get pods

    例如:

    # oc get pods
    NAME                                          READY     STATUS    RESTARTS   AGE
    glusterblock-storage-provisioner-dc-1-ffgs5   1/1       Running   0          3m
    glusterfs-storage-5thpc                       1/1       Running   0          9d
    glusterfs-storage-hfttr                       1/1       Running   0          9d
    glusterfs-storage-n8rg5                       1/1       Running   0          9d
    heketi-storage-4-9fnvz                        2/2       Running   0          8d
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部