8.2.4. 使用 Ansible 部署的现有版本升级


8.2.4.1. 在 Openshift 节点升级 Heketi

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

  1. 执行以下命令来更新 heketi 客户端:

    # yum update heketi-client -y
  2. 备份 Heketi 数据库文件:

    # heketi-cli db dump > heketi-db-dump-$(date -I).json
  3. 执行以下命令以获取当前的 HEKETI_ADMIN_KEY:

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

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

     # oc describe pod <heketi-pod> |grep "HEKETI_USER_KEY"
  5. 如果前面通过以下命令设置,可以获取 HEKETI_USER_KEY。

     # oc describe pod <heketi-pod> |grep "HEKETI_USER_KEY"
  6. 如果之前设置了 HEKETI_USER_KEY,您可以使用以下命令获取它:

     #  oc describe pod <heketi-pod> |grep "HEKETI_USER_KEY"
  7. 执行以下命令来删除 heketi 模板。

     # oc delete templates heketi
  8. 执行以下命令来安装 heketi 模板。

    # oc create -f /usr/share/ansible/openshift-ansible/roles/openshift_storage_glusterfs/files/heketi-template.yml
    template "heketi" created
  9. 执行以下步骤编辑模板:

    # oc get templates
      	NAME			                 DESCRIPTION		           PARAMETERS		OBJECTS
      	glusterblock-provisioner   glusterblock provisioner              3 (2 blank)     	4
      				  template
      	glusterfs		              GlusterFS DaemonSet 	            5 (1 blank)     	1
      				  template
      	heketi			              Heketi service deployment         7 (3 blank)     	3
    template

    如果模板有 IMAGE_NAME 和 IMAGE_VERSION 作为两个参数,编辑模板,将 HEKETI_USER_KEY, HEKETI_ADMIN_KEY, HEKETI_EXECUTOR, HEKETI_FSTAB, HEKETI_ROUTE, IMAGE_NAME, IMAGE_VERSION ,CLUSTER_NAME 和 HEKETI_LVM_WRAPPER 改为下面示例中显示的内容。

    注意

    HEKETI_LVM_WRAPPER 参数的值指向 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: ssh
    - description: Set the fstab path, file that is populated with bricks that heketi creates
      displayName: heketi fstab path
      name: HEKETI_FSTAB
      value: /etc/fstab
    - description: Set the hostname for the route URL
      displayName: heketi route name
      name: HEKETI_ROUTE
      value: heketi-storage
    - 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 cluster name
      name: CLUSTER_NAME
      value: storage
    - 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: ""

    如果模板只有 IMAGE_NAME,则编辑模板以更改 HEKETI_USER_KEY、HEKETI_ADMIN_KEY、HEKETI_EXECUTOR、HEKETI_FSTAB、HEKETI_ROUTE、IMAGE_NAME、CLUSTER_NAME 和 HEKETI_LVM_ES_LRAPPER, HEKETI_FSTAB, HEKETI_ROUTE, CLUSTER_NAME, CLUSTER

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: ssh
  - description: Set the fstab path, file that is populated with bricks that heketi creates
    displayName: heketi fstab path
    name: HEKETI_FSTAB
    value: /etc/fstab
  - description: Set the hostname for the route URL
    displayName: heketi route name
    name: HEKETI_ROUTE
    value: heketi-storage
  - displayName: heketi container image name
    name: IMAGE_NAME
    required: true
    value: registry.redhat.io/rhgs3/rhgs-volmanager-rhel7:v3.11.7
  - description: A unique name to identify this heketi service, useful for running multiple heketi instances
    displayName: GlusterFS cluster name
    name: CLUSTER_NAME
    value: storage
  - 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: ""
注意

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

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

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

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

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

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

    # oc get pods

    例如:

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

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部