6.2.4. 既存のバージョンが Ansible を使用してデプロイされている場合のアップグレード
6.2.4.1. Heketi サーバーのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドは、クライアントマシンで実行する必要があります。
OCS 3.10 を Ansible 経由でデプロイした場合は、「yum update cns-deploy -y」を実行する必要はありません。
以下の手順を実行して、Heketi Pod を停止し、ボリュームの作成やボリュームの削除に関する新しいリクエストを受け入れないようにします。
以下のコマンドを実行して、プロジェクトにアクセスします。
# oc project <project_name>以下は例になります。
# oc project storage-project以下のコマンドを実行して、
DeploymentConfigを取得します。# oc get ds以下のコマンドを実行して heketi サーバーを設定し、local-client からのリクエストのみを受け入れます。
# heketi-cli server mode set local-client継続中の操作が完了するまで待機し、以下のコマンドを実行し、継続中の操作があるかどうかを監視します。
# heketi-cli server operations info
Heketi データベースファイルのバックアップを作成します。
# heketi-cli db dump > heketi-db-dump-$(date -I).json注記作成された json ファイルを使用して復元することができるため、選択した永続ストレージに保存する必要があります。
以下のコマンドを実行して、heketi クライアントパッケージを更新します。インストールされているすべての OCP ノードで、
heketi-clientパッケージを更新します。新しいインストールでは、いずれのOCPノードにもheketi-clientrpm がインストールされていない可能性があります。# yum update heketi-client -y以下のコマンドを実行して、現在の HEKETI_ADMIN_KEY を取得します。
OCS 管理者は、インフラストラクチャーによって使用されていない限り、ユーザーキーに任意のフレーズを設定することを選択できます。これは、OCSのデフォルトでインストールされているリソースでは使用されません。
# oc get secret heketi-registry-admin-secret -o jsonpath='{.data.key}'|base64 -d;echoHEKETI_USER_KEYが以前に設定されていた場合は、以下のコマンドを使用して取得することができます。# oc describe pod <heketi-pod>以下の手順を実行して、テンプレートを編集します。
テンプレートに既存の 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_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 - 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 を超えるボリュームがある場合は、How to change the default PVS limit in Openshift Container Storage を参照し、アップグレードに進む前に必要なパラメーターを追加します。
以下のコマンドを実行して、heketi のデプロイメント設定、サービス、ルートを削除します。
# oc delete deploymentconfig,service,route heketi-registry以下のコマンドを実行して、OpenShift の永続ボリュームを作成するために使用する Heketi サービス、ルート、およびデプロイメント設定をデプロイします。
# oc process heketi | oc create -f - service "heketi-registry" created route "heketi-registry" created deploymentconfig-registry "heketi" created注記db ワークロード用に、
heketidbstorageボリュームを調整することを推奨します。新たにインストールされた Openshift Container Storage デプロイメントにより、heketidbstorage ボリュームが自動的にチューニングされます。古いデプロイメントの場合は、KCS の記事 Planning to run containerized DB or nosql workloads on Openshift Container Storage? に従って、ボリュームheketidbstorageのボリュームセット操作を実行します。以下のコマンドを実行して、コンテナーが実行していることを確認します。
# 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