2.5. コンテナー化された GlusterFS を使用する場合の OpenShift Container Platform のアップグレード
OpenShift Container Platform をアップグレードする際に、GlusterFS Pod が実行されるノードのセットをアップグレードする必要があります。ただし、これらの Pod は daemonset の一部として実行されるため、GlusterFS Pod を終了したり、退避したりするために drain
または unschedule
コマンドを使用することはできません。データ可用性およびクラスターの破損の問題を避けるには、GlusterFS Pod ホストするノードを一度に 1 つずつアップグレードして、アップグレードプロセスが GlusterFS を実行するノードで完了してから次のノードでのアップグレードを開始するようにしてください。
コンテナー化された GlusterFS を使用する場合に OpenShift Container Platform をアップグレードするには、以下を実行します。
- コントロールプレーンをアップグレード します (マスターノードおよび etcd ノード)。
標準
infra
ノード (ルーター、レジストリー、ロギング、およびメトリクス) をアップグレードします。注記これらのグループのノードのいずれかが GlusterFS を実行している場合、この手順のステップ 4 を同時に実行します。GlusterFS ノードは (
app
やinfra
などの) クラス内の他のノードと共に 一度に 1 つずつアップグレードする必要があります。アプリケーションコンテナーを実行する標準ノードをアップグレードします。
注記これらのグループのノードのいずれかが GlusterFS を実行している場合、この手順のステップ 4 を同時に実行します。GlusterFS ノードは (
app
やinfra
などの) クラス内の他のノードと共に 一度に 1 つずつアップグレードする必要があります。GlusterFS を実行する OpenShift Container Platform ノードを一度に 1 つずつアップグレードします。
以下のパラメーターを、/etc/ansible/hosts のインベントリーファイルに追加します。
openshift_hosted_registry_storage_kind=glusterfs openshift_storage_glusterfs_heketi_image=registry.access.redhat.com/rhgs3/rhgs-volmanager-rhel7:<your_cns_vesion>1 openshift_storage_glusterfs_image=registry.access.redhat.com/rhgs3/rhgs-server-rhel7:<your_cns_vesion>2 openshift_storage_glusterfs_block_image=registry.access.redhat.com/rhgs3/rhgs-gluster-block-prov-rhel7:<your_cns_vesion>3 openshift_storage_glusterfs_s3_image=registry.access.redhat.com/rhgs3/rhgs-s3-server-rhel7:<your_cns_vesion>4
以下のリソースでは、イメージタグが存在する場合には latest から
<your_cns_version>
に更新します (v3.9 または v3.11.3 など)。$ oc edit -n <glusterfs_namespace> ds glusterfs-<name> $ oc edit -n <glusterfs_namespace> dc heketi-<name> $ oc edit -n <glusterfs_namespace> dc glusterblock-<name>-provisioner-dc $ oc edit -n <glusterfs_namespace> dc gluster-<name>-<account>-s3
一度に 1 つのノードだけがアップグレードされるように、アップグレードするノードにラベルを追加します。
$ oc label node <node_name> type=upgrade
- 再起動する GlusterFS Pod は終了しないでください。
単一 GlusterFS ノードでアップグレード Playbook を実行するには、
-e openshift_upgrade_nodes_label="type=upgrade"
を使用します。注記GlusterFS Pod は終了されないはずです。
- GlusterFS Pod が再生成され、表示されるまで待機します。
- 各 Pod の再起動後に基本的なヘルスチェックを実行し、ヘルスチェックに合格していることを確認します。
oc rsh
を Pod に実行し、すべてのボリュームが自動修復されていることを確認します。$ oc rsh <GlusterFS_pod_name> $ for vol in `gluster volume list`; do gluster volume heal $vol info; done
すべてのボリュームが自動修復され、未処理のタスクがないことを確認します。
heal info
コマンドは所定ボリュームの自動修復プロセスのすべての未処理エントリーを一覧表示します。ボリュームは、ボリュームのNumber of entries
が0
の場合に自動修正済みとみなされます。アップグレードラベルを削除し、次の GlusterFS ノードに移動します。
$ oc label node <node_name> type-