Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

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 をアップグレードするには、以下を実行します。

  1. コントロールプレーンをアップグレード します (マスターノードおよび etcd ノード)。
  2. 標準 infra ノード (ルーター、レジストリー、ロギング、およびメトリクス) をアップグレードします。

    注記

    これらのグループのノードのいずれかが GlusterFS を実行している場合、この手順のステップ 4 を同時に実行します。GlusterFS ノードは (appinfra などの) クラス内の他のノードと共に 一度に 1 つずつアップグレードする必要があります。

  3. アプリケーションコンテナーを実行する標準ノードをアップグレードします。

    注記

    これらのグループのノードのいずれかが GlusterFS を実行している場合、この手順のステップ 4 を同時に実行します。GlusterFS ノードは (appinfra などの) クラス内の他のノードと共に 一度に 1 つずつアップグレードする必要があります。

  4. GlusterFS を実行する OpenShift Container Platform ノードを一度に 1 つずつアップグレードします。

    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
      1 2 3 4
      v3.9 または v3.11.3 などの CNS バージョンを指定します。
    2. 以下のリソースでは、イメージタグが存在する場合には 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
    3. 一度に 1 つのノードだけがアップグレードされるように、アップグレードするノードにラベルを追加します。

      $ oc label node <node_name> type=upgrade
    4. 再起動する GlusterFS Pod は終了しないでください。
    5. 単一 GlusterFS ノードでアップグレード Playbook を実行するには、-e openshift_upgrade_nodes_label="type=upgrade" を使用します。

      注記

      GlusterFS Pod は終了されないはずです。

    6. GlusterFS Pod が再生成され、表示されるまで待機します。
    7. 各 Pod の再起動後に基本的なヘルスチェックを実行し、ヘルスチェックに合格していることを確認します。
    8. 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 entries0 の場合に自動修正済みとみなされます。

    9. アップグレードラベルを削除し、次の GlusterFS ノードに移動します。

      $ oc label node <node_name> type-