8.3.2. 升级 glusterblock-provisioner Pod


要升级 glusterblock-provisioner pod,请执行以下步骤:

  1. 执行以下命令,以删除旧的 glusterblock provisioner 模板。

    # oc delete templates glusterblock-provisioner
  2. 创建 glusterblock provisioner 模板。例如:

    # oc create -f /usr/share/ansible/openshift-ansible/roles/openshift_storage_glusterfs/files/glusterblock-provisioner.yml
    template.template.openshift.io/glusterblock-provisioner created
  3. 如果 glusterblock-provisoner pod 已经存在,则执行以下命令来删除它:

    # oc delete dc <gluster-block-registry-dc>

    例如:

    # oc delete dc glusterblock-registry-provisioner-dc
  4. 编辑 glusterblock-provisioner 模板,以更改 IMAGE_NAME、IMAGE_VERSION 和 NAMESPACE。

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

    如果模板包含 IMAGE_NAME 和 IMAGE_VERSION,请更新 glusterblock-provisioner 模板,如下所示:

    oc edit template glusterblock-provisioner
      - displayName: glusterblock provisioner container image name
        name: IMAGE_NAME
        required: true
        value: registry.redhat.io/rhgs3/rhgs-gluster-block-prov-rhel7
      - displayName: glusterblock provisioner container image version
        name: IMAGE_VERSION
        required: true
        value: v3.11.8
      - description: The namespace in which these resources are being created
        displayName: glusterblock provisioner namespace
        name: NAMESPACE
        required: true
        value: glusterfs-registry
      - description: A unique name to identify which heketi service manages this cluster, useful for running multiple heketi instances
        displayName: GlusterFS cluster name
        name: CLUSTER_NAME
        value: registry

    根据您要升级到的版本,将 IMAGE_VERSION 中的替换为 v3.11.5v3.11.8

      - displayName: glusterblock provisioner container image version
        name: IMAGE_VERSION
        required: true
        value: v3.11.8

    如果模板只有一个 IMAGE_NAME 作为参数,请按如下所示更新 glusterblock-provisioner 模板:

    # oc edit template glusterblock-provisioner
      - displayName: glusterblock provisioner container image name
        name: IMAGE_NAME
        required: true
        value: registry.redhat.io/rhgs3/rhgs-gluster-block-prov-rhel7:v3.11.8
      - description: The namespace in which these resources are being created
      - displayName: glusterblock provisioner namespace
        name: NAMESPACE
        required: true
        value: glusterfs-registry
      - description: A unique name to identify which heketi service manages this cluster, useful for running multiple heketi instances
        displayName: GlusterFS cluster name
        name: CLUSTER_NAME
        value: registry

    根据您要升级到的版本,将 IMAGE_NAME 中的替换为 v3.11.5v3.11.8

      - displayName: glusterblock provisioner container image name
        name: IMAGE_NAME
        required: true
        value: rhgs3/rhgs-gluster-block-prov-rhel7:v3.11.8
  5. 从旧 pod 中删除以下资源:

    # oc delete clusterroles.authorization.openshift.io glusterblock-provisioner-runner
    # oc delete serviceaccounts glusterblock-registry-provisioner
    # oc delete clusterrolebindings.authorization.openshift.io glusterblock-registry-provisioner
  6. 在运行 oc process 前,请确定正确的置备程序名称。如果集群中有多个 gluster 块置备程序,该名称必须与所有其他 置备程序 不同。
    例如,

    • 如果有 2 个或多个置备程序,则名称应该为 gluster.org/glusterblock-<namespace>,使用置备程序部署在的命名空间名称替换 <namespace>。
    • 如果只有一个置备程序,在 3.11.8 之前安装,gluster.org/glusterblock 就足够。如果当前使用的名称已经有唯一的命名空间后缀,则重复利用现有名称。
  7. 编辑模板后,执行以下命令创建部署配置:

    # oc process glusterblock-provisioner -o yaml | oc create -f -

    例如:

    # oc process glusterblock-provisioner -o yaml | oc create -f -
    clusterrole.authorization.openshift.io/glusterblock-provisioner-runner created
    serviceaccount/glusterblock-registry-provisioner created
    clusterrolebinding.authorization.openshift.io/glusterblock-registry-provisioner created
    deploymentconfig.apps.openshift.io/glusterblock-registry-provisioner-dc created
  8. 使用 gluster 块卷置备的所有存储类必须与集群中的一个置备程序名称完全匹配。要检查在给定命名空间中引用块置备程序的存储类列表,请运行以下命令:

    # oc get sc -o custom-columns=NAME:.metadata.name,PROV:.provisioner,RSNS:.parameters.restsecretnamespace | grep 'gluster.org/glusterblock' | grep <namespace>

    例如:

    # oc get sc -o custom-columns=NAME:.metadata.name,PROV:.provisioner,RSNS:.parameters.restsecretnamespace | grep 'gluster.org/glusterblock' | grep infra-storage
      glusterfs-registry-block   gluster.org/glusterblock               infra-storage

    如果每个存储类置备程序名称,如果它与为那个命名空间配置的块置备程序名称不匹配,则需要更新它。如果 块置备程序 名称已 与配置的置备程序 名称匹配,则不需要进行任何其他操作。使用上面生成的列表,并包括必须更新指定名称的所有存储类名称。
    对于此列表中的每个存储类,请执行以下操作:

    # oc get sc  -o yaml <storageclass>  > storageclass-to-edit.yaml
    # oc delete sc  <storageclass>
    # sed 's,gluster.org/glusterblock$,gluster.org/glusterblock-<namespace>,' storageclass-to-edit.yaml | oc create -f -

    例如:

    # oc get sc -o yaml glusterfs-registry-block > storageclass-to-edit.yaml
    # oc delete sc glusterfs-registry-block
    storageclass.storage.k8s.io "glusterfs-registry-block" deleted
    # sed 's,gluster.org/glusterblock$,gluster.org/glusterblock-infra-storage,' storageclass-to-edit.yaml | oc create -f -
    storageclass.storage.k8s.io/glusterfs-registry-block created
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部