8.2.4. 使用 Ansible 部署的现有版本升级
8.2.4.1. 在 Openshift 节点升级 Heketi 复制链接链接已复制到粘贴板!
必须在客户端计算机上执行以下命令。
执行以下命令来更新 heketi 客户端:
# yum update heketi-client -y备份 Heketi 数据库文件:
# heketi-cli db dump > heketi-db-dump-$(date -I).json执行以下命令以获取当前的 HEKETI_ADMIN_KEY:
OCS 管理员可以选择为用户密钥设置任何短语,只要其基础架构不使用它。它没有被任何 OCS 默认安装的资源使用。
oc get secret heketi-storage-admin-secret -o jsonpath='{.data.key}'|base64 -d;echo如果之前设置了 HEKETI_USER_KEY,您可以使用以下命令获取它:
# oc describe pod <heketi-pod> |grep "HEKETI_USER_KEY"如果前面通过以下命令设置,可以获取 HEKETI_USER_KEY。
# oc describe pod <heketi-pod> |grep "HEKETI_USER_KEY"如果之前设置了 HEKETI_USER_KEY,您可以使用以下命令获取它:
# oc describe pod <heketi-pod> |grep "HEKETI_USER_KEY"执行以下命令来删除 heketi 模板。
# oc delete templates heketi执行以下命令来安装 heketi 模板。
# oc create -f /usr/share/ansible/openshift-ansible/roles/openshift_storage_glusterfs/files/heketi-template.yml template "heketi" created执行以下步骤编辑模板:
# 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 限制 ,并在进行升级前添加必要的参数。
执行以下命令删除 heketi 的部署配置、服务和路由:
# oc delete deploymentconfig,service,route heketi-storage执行以下命令来部署用于为 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执行卷设置操作。执行以下命令来验证容器是否正在运行:
# 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