外部モードでの OpenShift Container Storage のデプロイ


Red Hat OpenShift Container Storage 4.6

環境のインストールおよび設定方法

概要

Red Hat OpenShift Container Storage 4.6 をインストールし、外部 Red Hat Ceph Storage クラスターを使用する方法については、本書をお読みください。

第1章 外部モードでのデプロイの概要

Red Hat OpenShift Container Storage は、外部でホストされる Red Hat Ceph Storage (RHCS) クラスターをストレージプロバイダーとして使用できます。このデプロイメントタイプは、ベアメタルおよびユーザーによってプロビジョニングされる VMware 環境についてサポートされます。詳細は、Planning your deployment を参照してください。

RHCS 4 クラスターのインストール方法は、 インストールガイド を参照してください。

以下の手順に従って、OpenShift Container Storage を外部モードでデプロイします。

  1. ワーカーノードに Red Hat Enterprise Linux ホストを使用する場合は、コンテナーでのファイルシステムアクセスを有効にします

    Red Hat Enterprise Linux CoreOS (RHCOS) ホストを使用する場合は、この手順を省略します。

  2. OpenShift Container Storage Operator をインストールします
  3. OpenShift Container Storage Cluster Service を作成します。

ユーザーによってプロビジョニングされるインフラストラクチャー (UPI) で Red Hat Enterprise Linux がベースの OpenShift Container Platform にワーカーノードを含めて OpenShift Container Storage をデプロイしても自動的に、基盤の Ceph ファイルシステムへのコンテナーアクセスが提供されるわけではありません。

注記

このプロセスは、Red Hat Enterprise Linux CoreOS をベースとするホストには不要です。

手順

クラスター内の各ノードで以下の手順を実行します。

  1. Red Hat Enterprise Linux ベースのノードにログインし、ターミナルを開きます。
  2. ノードが rhel-7-server-extras-rpms リポジトリーにアクセスできることを確認します。

    # subscription-manager repos --list-enabled | grep rhel-7-server
    Copy to Clipboard Toggle word wrap

    出力に rhel-7-server-rpmsrhel-7-server-extras-rpms の両方が表示されない場合は、以下のコマンドを実行して各リポジトリーを有効にします。

    # subscription-manager repos --enable=rhel-7-server-rpms
    # subscription-manager repos --enable=rhel-7-server-extras-rpms
    Copy to Clipboard Toggle word wrap
  3. 必要なパッケージをインストールします。

    # yum install -y policycoreutils container-selinux
    Copy to Clipboard Toggle word wrap
  4. SELinux での Ceph ファイルシステムのコンテナーの使用を永続的に有効にします。

    # setsebool -P container_use_cephfs on
    Copy to Clipboard Toggle word wrap

第3章 Red Hat OpenShift Container Storage Operator のインストール

Red Hat OpenShift Container Storage は、Red Hat OpenShift Container Platform Operator Hub を使用してインストールできます。ハードウェアおよびソフトウェアの要件に関する詳細は、 デプロイメントのプランニング を参照してください。

前提条件

  • OpenShift Container Platform (RHOCP) クラスターにログインしている必要があります。
注記
  • OpenShift Container Storage のクラスター全体でのデフォルトノードセレクターを上書きする必要がある場合は、コマンドラインインターフェイスで以下のコマンドを使用し、openshift-storage namespace の空のノードセレクターを指定できます。

    $ oc annotate namespace openshift-storage openshift.io/node-selector=
    Copy to Clipboard Toggle word wrap

手順

  1. OpenShift Web コンソールの左側のペインで、Operators → OperatorHub をクリックします。
  2. Filter by keyword テキストボックスまたはフィルター一覧を使用して、Operator の一覧から OpenShift Container Storage を検索します。
  3. OpenShift Container Storage をクリックします。
  4. OpenShift Container Storage Operator ページで、Install をクリックします。
  5. Install Operator ページで、以下のオプションがデフォルトで選択されていることを確認します。

    1. Channel を stable-4.6として更新します。
    2. Installation Mode オプションに A specific namespace on the cluster を選択します。
    3. Installed Namespace に Operator recommended namespace openshift-storage を選択します。namespace openshift-storage が存在しない場合、これは Operator のインストール時に作成されます。
    4. Enable operator recommended cluster monitoring on this namespace が選択されていることを確認します。この設定はクラスターのモニターリングに必要です。
    5. 承認ストラテジーAutomatic または Manual として選択している。承認ストラテジーはデフォルトで Automatic に設定されます。

      • Approval StrategyAutomatic を選択します。

        注記

        Approval Strategy を Automatic として選択すると、新規インストール時、または OpenShift Container Storage の最新バージョンへの更新時に承認は必要ありません。

        1. インストール をクリックします。
        2. インストールが開始するまで待機します。これには、最長 20 分の時間がかかる可能性があります。
        3. Operators → Installed Operators をクリックします。
        4. Projectopenshift-storage であることを確認します。デフォルトで、プロジェクトopenshift-storage です。
        5. OpenShift Container StorageStatusSucceeded に変更するまで待機します。
      • Approval StrategyManual を選択します。

        注記

        Approval Strategy を Manual として選択すると、新規インストール時、または OpenShift Container Storage の最新バージョンへの更新時に承認が必要になります。

        1. インストール をクリックします。
        2. Manual approval required ページで、Approve または View Installed Operators in namespace openshift-storage のいずれかをクリックし、Operator をインストールできます。

          重要

          オプションのいずれかをクリックする前に、Manual approval required ページで、インストール計画がウィンドウに読み込まれるまで数分待機します。

          重要

          Approve をクリックする場合は、続行する前にインストール計画を確認する必要があります。

          • Approve をクリックします。

            • OpenShift Container Storage Operator がインストールされている間に数分待機します。
            • Installed operator - ready for use ページで、View Operator をクリックします。
            • Projectopenshift-storage であることを確認します。デフォルトで、プロジェクトopenshift-storage です。
            • Operators → Installed Operators をクリックします。
            • OpenShift Container StorageStatusSucceeded に変更するまで待機します。
          • View Installed Operators in namespace openshift-storage をクリックします。

            • Installed Operators ページで、ocs-operator をクリックします。
            • Subscription Details ページで、Install Plan リンクをクリックします。
            • InstallPlan Details ページで、Preview Install Plan をクリックします。
            • インストール計画を確認し、Approve をクリックします。
            • ComponentsStatusUnknown から Created または Present のいずれかに変更するまで待機します。
            • Operators → Installed Operators をクリックします。
            • Projectopenshift-storage であることを確認します。デフォルトで、プロジェクトopenshift-storage です。
            • OpenShift Container StorageStatusSucceeded に変更するまで待機します。

検証手順

  • OpenShift Container Storage Operator に、インストールが正常に実行されたことを示す緑色のチェックマークが表示されていることを確認します。
  • View Installed Operators in namespace openshift-storage リンクをクリックし、OpenShift Container Storage Operator が Installed Operators ダッシュボードで StatusSucceeded として表示していることを確認します。

第4章 外部モードでの OpenShift Container Storage Cluster Service の作成

OpenShift Container Storage Operator を、ユーザーによってプロビジョニングされた VMware vSphere およびベアメタルのインフラストラクチャー上にデプロイされた OpenShift Container Platform にインストールした後に、OpenShift Container Storage クラスターサービスを新規作成する必要があります。

前提条件

  • 作業用の OpenShift Container Platform バージョン 4.5.4 以降にログインしている必要があります。
  • OpenShift Container Storage Operator はインストールされている必要があります。詳細は、Installing OpenShift Container Storage Operator using the Operator Hub を参照してください。
  • 外部クラスターには、Red Hat Ceph Storage バージョン 4.2z1 以降が必要です。詳細は、この Red Hat Ceph Storage リリースおよび対応する Ceph パッケージバージョンについてのナレッジベースのアーティクル を参照してください。

    Red Hat Ceph Storage クラスターを 4.1.1 以前のバージョンから最新リリースに更新し、これが新規にデプロイされたクラスターではない場合は、Red Hat Ceph Storage クラスターで CephFS プールのアプリケーションタイプを手動で設定し、外部モードで CephFS PVC の作成を有効にする必要があります。

    詳細は、外部モードでの CephFS PVC の作成のトラブルシューティング について参照してください。

  • Red Hat Ceph Storage には Ceph Dashboard がインストールされ、設定されている必要があり、Ceph Manager Prometheus エクスポーターにポート 9283 を使用する必要があります。詳細は、Ceph Dashboard のインストールおよびアクセス について参照してください。
  • 外部 RedHat CephStorage クラスターに対して PG Autoscaler オプションを有効にすることが推奨されます。詳細は、Red Hat Ceph Storage ドキュメントの The placement group autoscaler セクションを参照してください。
  • 外部 Ceph クラスターには、既存の RBD プールを使用できるように事前に設定されている必要があります。これがない場合は、OpenShift Container Storage のデプロイメントに進む前に、Red Hat Ceph Storage の管理者に問い合わせてこれを作成してください。OpenShift Container Storage クラスターごとに別個のプールを使用することが推奨されます。

手順

  1. Operators → Installed Operators をクリックし、インストールされた Operator をすべて表示します。

    選択された Projectopenshift-storage であることを確認します。

    図4.1 OpenShift Container Storage Operator ページ

  2. OpenShift Container Storage をクリックします。

    図4.2 OpenShift Container Storage の Details タブ

  3. Storage Cluster の Create Instance リンクをクリックします。
  4. Mode を External に選択します。デフォルトでは、Internal はデプロイメントモードとして選択されます。

    図4.3 Create Storage Cluster 形式の外部クラスターへの接続

  5. Connect to external cluster セクションで、Download Script リンクをクリックして、Ceph クラスターの詳細を抽出するために python スクリプトをダウンロードします。
  6. Red Hat Ceph Storage (RHCS) クラスターの詳細を抽出するには、RHCS 管理者に問い合わせた上で Red Hat Ceph Storage でダウンロードした python スクリプトを admin key を使用して実行します。

    1. RHCS ノードで以下のコマンドを実行し、利用可能な引数の一覧を表示します。

      # python3 ceph-external-cluster-details-exporter.py --help
      Copy to Clipboard Toggle word wrap
      重要

      Red Hat Ceph Storage 4.x クラスターが Red Hat Enterprise Linux 7.x (RHEL 7.x) クラスターにデプロイされている場合は、python3 ではなく python を使用します。

      注記

      MON コンテナー内 (コンテナー化されたデプロイメント) または MON ノード (rpm デプロイメント) からスクリプトを実行することもできます。

    2. RHCS クラスターから外部クラスターの詳細を取得するには、以下のコマンドを実行します。

      # python3 ceph-external-cluster-details-exporter.py \
      --rbd-data-pool-name <rbd block pool name>  [optional arguments]
      Copy to Clipboard Toggle word wrap

      以下に例を示します。

      # python3 ceph-external-cluster-details-exporter.py --rbd-data-pool-name ceph-rbd --monitoring-endpoint xxx.xxx.xxx.xxx --monitoring-endpoint-port 9283 --rgw-endpoint xxx.xxx.xxx.xxx:xxxx --run-as-user client.ocs
      Copy to Clipboard Toggle word wrap

      上記の例は、以下のようになります。

      • --rbd-data-pool-name は、OpenShift Container Storage でブロックストレージを提供するために使用される必須のパラメーターです。
      • --rgw-endpoint は任意です。OpenShift Container Storage の Ceph Rados Gateway でオブジェクトストレージをプロビジョニングする場合に、このパラメーターを指定します。<ip_address>:<port> の形式でエンドポイントを指定します。
      • --monitoring-endpoint は任意です。これは、OpenShift Container Platform クラスターから到達できるアクティブな ceph-mgr の IP アドレスです。指定しない場合には、値が自動的に入力されます。
      • --monitoring-endpoint-port は任意です。これは --monitoring-endpoint で指定された ceph-mgr Prometheus エクスポーターに関連付けられるポートです。指定しない場合には、値が自動的に入力されます。ポート 9283 のみが OpenShift Container Platform 4.6 でサポートされます。
      • -- run-as-user は、スクリプトで作成される Ceph ユーザーの名前を指定するために使用されるオプションのパラメーターです。このパラメーターを指定しないと、デフォルトのユーザー名 client.healthchecker が作成されます。新規ユーザーのパーミッションは以下のように設定されます。

        • caps: [mgr] はコマンド設定を許可します。
        • caps: [mon] は r を許可し、コマンド quorum_status を許可し、コマンド version を許可します。
        • caps: [osd] allow rwx pool=RGW_POOL_PREFIX.rgw.meta, allow r pool=.rgw.root, allow rw pool=RGW_POOL_PREFIX.rgw.control, allow rx pool=RGW_POOL_PREFIX.rgw.log, allow x pool=RGW_POOL_PREFIX.rgw.buckets.index

          python スクリプトを使用して生成された JSON 出力の例:

          [{"name": "rook-ceph-mon-endpoints", "kind": "ConfigMap", "data": {"data": "xxx.xxx.xxx.xxx:xxxx", "maxMonId": "0", "mapping": "{}"}}, {"name": "rook-ceph-mon", "kind": "Secret", "data": {"admin-secret": "admin-secret", "fsid": "<fs-id>", "mon-secret": "mon-secret"}}, {"name": "rook-ceph-operator-creds", "kind": "Secret", "data": {"userID": "client.healthchecker", "userKey": "<user-key>"}}, {"name": "rook-csi-rbd-node", "kind": "Secret", "data": {"userID": "csi-rbd-node", "userKey": "<user-key>"}}, {"name": "ceph-rbd", "kind": "StorageClass", "data": {"pool": "ceph-rbd"}}, {"name": "monitoring-endpoint", "kind": "CephCluster", "data": {"MonitoringEndpoint": "xxx.xxx.xxx.xxx", "MonitoringPort": "xxxx"}}, {"name": "rook-csi-rbd-provisioner", "kind": "Secret", "data": {"userID": "csi-rbd-provisioner", "userKey": "<user-key>"}}, {"name": "rook-csi-cephfs-provisioner", "kind": "Secret", "data": {"adminID": "csi-cephfs-provisioner", "adminKey": "<admin-key>"}}, {"name": "rook-csi-cephfs-node", "kind": "Secret", "data": {"adminID": "csi-cephfs-node", "adminKey": "<admin-key>"}}, {"name": "cephfs", "kind": "StorageClass", "data": {"fsName": "cephfs", "pool": "cephfs_data"}}, {"name": "ceph-rgw", "kind": "StorageClass", "data": {"endpoint": "xxx.xxx.xxx.xxx:xxxx", "poolPrefix": "default"}}]
          Copy to Clipboard Toggle word wrap

    3. JSON 出力を .json 拡張のあるファイルに保存します。

      注記

      OpenShift Container Storage がシームレスに機能するには、JSON ファイルを使用してアップロードされるパラメーター (RGW エンドポイント、CephFS の詳細、RBD プールなど) が、ストレージクラスターの作成後も RHCS 外部クラスターで変更されないままであることを確認します。

  7. External cluster metadata → Browse をクリックして、JSON ファイルを選択し、アップロードします。

    JSON ファイルの内容が入力され、テキストボックスに表示されます。

    図4.4 JSON ファイルの内容

  8. Create をクリックします。

    Create ボタンは、.json ファイルのアップロード後にのみ有効になります。

検証手順

  1. インストールされたストレージクラスターの最後の Status が緑色のチェックマークと共に Phase: Ready と表示されていることを確認します。

    • Operators → Installed Operators → Storage Cluster のリンクをクリックして、ストレージクラスターのインストールのステータスを表示します。
    • または、Operator Details タブで、Storage Cluster タブをクリックすると、ステータスを表示できます。
  2. OpenShift Container Storage、Pod および StorageClass が正常にインストールされていることを確認するには、外部モードの OpenShift Container Storage インストールの確認 について参照してください。

第5章 外部モードの OpenShift Container Storage インストールの確認

このセクションを使用して、OpenShift Container Storage が正常にデプロイされていることを確認します。

5.1. Pod の状態の確認

  1. OpenShift Web コンソールの左側のペインから Workloads → Pods をクリックします。
  2. Project ドロップダウンリストから openshift-storage を選択します。

    各コンポーネントについて予想される Pod 数や、これがノード数によってどのように異なるかの詳細は、表5.1「OpenShift Container Storage コンポーネントに対応する Pod」 を参照してください。

  3. 以下の Pod が実行中であるを確認します。

    Expand
    表5.1 OpenShift Container Storage コンポーネントに対応する Pod
    コンポーネント対応する Pod

    OpenShift Container Storage Operator

    • ocs-operator-* (任意のワーカーノードに 1 Pod)
    • ocs-metrics-exporter-*

    Rook-ceph Operator

    rook-ceph-operator-*

    (任意のワーカーノードに 1 Pod)

    Multicloud Object Gateway

    • noobaa-operator-* (任意のワーカーノードに 1 Pod)
    • noobaa-core-* (任意のワーカーノードに 1 Pod)
    • noobaa-db-* (任意のワーカーノードに 1 つの Pod)
    • noobaa-endpoint-* (任意のワーカーノードに 1 Pod)

    CSI

    • cephfs

      • csi-cephfsplugin-* (各ワーカーノードに 1 Pod)
      • csi-cephfsplugin-provisioner-* (ワーカーノードに分散する 2 Pod)
    注記

    MDS が外部クラスターにデプロイされていない場合、csi-cephfsplugin Pod は作成されません。

    • rbd

      • csi-rbdplugin-* (各ワーカーノードに 1 Pod)
      • csi-rbdplugin-provisioner-* (ストレージノードに分散する 2 Pod)

5.2. OpenShift Container Storage クラスターが正常であることの確認

  • OpenShift Web コンソールの左側のペインから Home → Overview をクリックし、Persistent Storage タブをクリックします。
  • Status カード で、以下のイメージのように OCS Cluster に緑色のチェックマークが表示されていることを確認します。

    図5.1 Persistent Storage Overview ダッシュボードの Health status カード

  • Details カード で、以下のようにクラスター情報が表示されていることを確認します。

    サービス名
    OpenShift Container Storage
    クラスター名
    ocs-external-storagecluster
    プロバイダー
    vSphere
    モード
    外部
    バージョン
    ocs-operator-4.6.0

永続ストレージダッシュボードを使用して OpenShift Container Storage クラスターの正常性に関する詳細は、OpenShift Container Storage のモニターリング を参照してください。

5.3. Multicloud Object Gateway が正常であることの確認

  • OpenShift Web コンソールの左側のペインから Home → Overview をクリックし、Object Service タブをクリックします。
  • Status card で、Object ServiceData Resiliency の両方が Ready 状態 (緑のチェックマーク) にあることを確認します。

    図5.2 Object Service Overview ダッシュボードの Health status カード

  • Details カード で、MCG 情報が以下のように適切に表示されることを確認します。

    サービス名
    OpenShift Container Storage
    システム名

    Multicloud Object Gateway

    RADOS Object Gateway

    プロバイダー
    vSphere
    バージョン
    ocs-operator-4.6.0
注記

RADOS Object Gateway は、OpenShift Container Storage を外部モードでデプロイし、RADOS Object Gateway エンドポイントの詳細が含まれている場合にのみ表示されます。

オブジェクトサービスダッシュボードを使用した OpenShift Container Storage クラスターの正常性については、OpenShift Container Storage のモニターリング を参照してください。

5.4. ストレージクラスが作成され、一覧表示されることの確認

  • OpenShift Web コンソールの左側のペインから Storage → Storage Classes をクリックします。
  • 以下のストレージクラスが OpenShift Container Storage クラスターの作成時に作成されることを確認します。

    • ocs-external-storagecluster-ceph-rbd
    • ocs-external-storagecluster-ceph-rgw
    • ocs-external-storagecluster-cephfs
    • openshift-storage.noobaa.io
注記
  • MDS が外部クラスターにデプロイされていない場合、ocs-external-storagecluster-cephfs ストレージクラスは作成されません。
  • RGW が外部クラスターにデプロイされていない場合、ocs-external-storagecluster-ceph-rgw ストレージクラスは作成されません。

MDS および RGW についての詳細は、Red Hat Ceph Storage のドキュメント を参照してください。

5.5. Ceph クラスターが接続されていることの確認

以下のコマンドを実行して、OpenShift Container Storage クラスターが外部の Red Hat Ceph Storage クラスターに接続されているかどうかを確認します。

$ oc get cephcluster -n openshift-storage
Copy to Clipboard Toggle word wrap
NAME                                      DATADIRHOSTPATH     MONCOUNT    AGE      PHASE       MESSAGE                         HEALTH
ocs-external-storagecluster-cephcluster                                   31m15s   Connected   Cluster connected successfully  HEALTH_OK
Copy to Clipboard Toggle word wrap

5.6. ストレージクラスターの準備が整っていることを確認します。

以下のコマンドを実行して、ストレージクラスターが準備状態にあり、External オプションが true に設定されていることを確認します。

$ oc get storagecluster -n openshift-storage
Copy to Clipboard Toggle word wrap
NAME                        AGE      PHASE EXTERNAL  CREATED AT              VERSION
ocs-external-storagecluster 31m15s   Ready true      2020-07-29T20:43:04Z    4.6.0
Copy to Clipboard Toggle word wrap

第6章 OpenShift Container Storage のアンインストール

6.1. 外部モードでの OpenShift Container Storage のアンインストール

このセクションの手順に従って OpenShift Container Storage をアンインストールします。OpenShift Container Storage をアンインストールしても、外部クラスターから RBD プールが削除されたり、外部の RedHat Ceph Storage クラスターがアンインストールされたりしません。

アノテーションのアンインストール

Storage Cluster のアノテーションは、アンインストールプロセスの動作を変更するために使用されます。アンインストールの動作を定義するために、ストレージクラスターに以下の 2 つのアノテーションが導入されました。

  • uninstall.ocs.openshift.io/cleanup-policy: delete
  • uninstall.ocs.openshift.io/mode: graceful
注記

uninstall.ocs.openshift.io/cleanup-policy は外部モードには適用できません。

以下の表は、これらのアノテーションで使用できる各種値に関する情報を示しています。

Expand
表6.1 uninstall.ocs.openshift.io uninstall annotations descriptions
アノテーションデフォルト動作

cleanup-policy

delete

はい

Rook は物理ドライブおよび DataDirHostPath をクリーンアップします。

cleanup-policy

Retain

いいえ

Rook は物理ドライブおよび DataDirHostPath をクリーンアップ しません

mode

graceful

はい

Rook および NooBaa は PVC および OBC が管理者/ユーザーによって削除されるまでアンインストールプロセスを一時停止します。

mode

forced

いいえ

Rook および NooBaa は、Rook および NooBaa を使用してプロビジョニングされた PVC/OBC がそれぞれ存在している場合でもアンインストールを続行します。

以下のコマンドを使用してアノテーションの値を編集し、アンインストールモードを変更できます。

$ oc annotate storagecluster ocs-external-storagecluster uninstall.ocs.openshift.io/mode="forced" --overwrite
storagecluster.ocs.openshift.io/ocs-external-storagecluster annotated
Copy to Clipboard Toggle word wrap

前提条件

  • OpenShift Container Storage クラスターの状態が正常であることを確認します。リソースまたはノードの不足により一部の Pod が正常に終了されないと、アンインストールプロセスに失敗する可能性があります。クラスターが状態が正常でない場合は、OpenShift Container Storage をアンインストールする前に Red Hat カスタマーサポートにお問い合わせください。
  • アプリケーションが OpenShift Container Storage によって提供されるストレージクラスを使用して永続ボリューム要求 (PVC) またはオブジェクトバケット要求 (OBC) を使用していないことを確認します。

手順

  1. OpenShift Container Storage を使用しているボリュームスナップショットを削除します。

    1. すべての namespace からボリュームスナップショットを一覧表示します。

      $ oc get volumesnapshot --all-namespaces
      Copy to Clipboard Toggle word wrap
    2. 直前のコマンドの出力から、OpenShift Container Storage を使用しているボリュームスナップショットを特定し、削除します。

      $ oc delete volumesnapshot <VOLUME-SNAPSHOT-NAME> -n <NAMESPACE>
      Copy to Clipboard Toggle word wrap
  2. OpenShift Container Storage を使用している PVC および OBC を削除します。

    デフォルトのアンインストールモード (graceful) では、アンインストーラーは OpenShift Container Storage を使用するすべての PVC および OBC が削除されるまで待機します。

    PVC を事前に削除せずに Storage Cluster を削除する場合は、アンインストールモードのアノテーションを forced に設定し、この手順を省略できます。これを実行すると、孤立した PVC および OBC がシステムに作成されます。

    1. OpenShift Container Storage を使用して、OpenShift Container Platform モニターリングスタック PVC を削除します。

      「OpenShift Container Storage からのモニターリングスタックの削除」 を参照してください。

    2. OpenShift Container Storage を使用して、OpenShift Container Platform レジストリー PVC を削除します。

      「OpenShift Container Storage からの OpenShift Container Platform レジストリーの削除」 を参照してください。

    3. OpenShift Container Storage を使用して、OpenShift Container Platform ロギング PVC を削除します。

      「OpenShift Container Storage からのクラスターロギング Operator の削除」 を参照してください。

    4. OpenShift Container Storage を使用してプロビジョニングした PVC および OBC を削除します。

      • 以下に、OpenShift Container Storage を使用してプロビジョニングされる PVC および OBC を特定するサンプルスクリプトを示します。このスクリプトは、OpenShift Container Storage により内部で使用される PVC および OBC を無視します。

        #!/bin/bash
        
        RBD_PROVISIONER="openshift-storage.rbd.csi.ceph.com"
        CEPHFS_PROVISIONER="openshift-storage.cephfs.csi.ceph.com"
        NOOBAA_PROVISIONER="openshift-storage.noobaa.io/obc"
        RGW_PROVISIONER="openshift-storage.ceph.rook.io/bucket"
        
        NOOBAA_DB_PVC="noobaa-db"
        NOOBAA_BACKINGSTORE_PVC="noobaa-default-backing-store-noobaa-pvc"
        
        # Find all the OCS StorageClasses
        OCS_STORAGECLASSES=$(oc get storageclasses | grep -e "$RBD_PROVISIONER" -e "$CEPHFS_PROVISIONER" -e "$NOOBAA_PROVISIONER" -e "$RGW_PROVISIONER" | awk '{print $1}')
        
        # List PVCs in each of the StorageClasses
        for SC in $OCS_STORAGECLASSES
        do
                echo "======================================================================"
                echo "$SC StorageClass PVCs and OBCs"
                echo "======================================================================"
                oc get pvc  --all-namespaces --no-headers 2>/dev/null | grep $SC | grep -v -e "$NOOBAA_DB_PVC" -e "$NOOBAA_BACKINGSTORE_PVC"
                oc get obc  --all-namespaces --no-headers 2>/dev/null | grep $SC
                echo
        done
        Copy to Clipboard Toggle word wrap
      • OBC を削除します。

        $ oc delete obc <obc name> -n <project name>
        Copy to Clipboard Toggle word wrap
      • PVC を削除します。

        $ oc delete pvc <pvc name> -n <project-name>
        Copy to Clipboard Toggle word wrap

        クラスターに作成されているカスタムバッキングストア、バケットクラスなどを削除していることを確認します。

  3. Storage Cluster オブジェクトを削除し、関連付けられたリソースが削除されるのを待機します。

    $ oc delete -n openshift-storage storagecluster --all --wait=true
    Copy to Clipboard Toggle word wrap
  4. namespace を削除し、削除が完了するまで待機します。openshift-storage がアクティブなプロジェクトである場合は、別のプロジェクトに切り替える必要があります。

    以下に例を示します。

    $ oc project default
    $ oc delete project openshift-storage --wait=true --timeout=5m
    Copy to Clipboard Toggle word wrap

    以下のコマンドが NotFound エラーを返すと、プロジェクトが削除されます。

    $ oc get project openshift-storage
    Copy to Clipboard Toggle word wrap
    注記

    OpenShift Container Storage のアンインストール時に、namespace が完全に削除されず、Terminating 状態のままである場合は、Troubleshooting and deleting remaining resources during Uninstall の記事に記載の手順を実行して namespace の終了をブロックしているオブジェクトを特定します。

  5. OpenShift Container Storage を使用してプロビジョニングした PV がすべて削除されていることを確認します。Released 状態のままの PV がある場合は、これを削除します。

    $ oc get pv
    $ oc delete pv <pv name>
    Copy to Clipboard Toggle word wrap
  6. Multicloud Object Gateway storageclass を削除します。

    $ oc delete storageclass openshift-storage.noobaa.io --wait=true --timeout=5m
    Copy to Clipboard Toggle word wrap
  7. CustomResourceDefinitions を削除します。

    $ oc delete crd backingstores.noobaa.io bucketclasses.noobaa.io cephblockpools.ceph.rook.io cephclusters.ceph.rook.io cephfilesystems.ceph.rook.io cephnfses.ceph.rook.io cephobjectstores.ceph.rook.io cephobjectstoreusers.ceph.rook.io noobaas.noobaa.io ocsinitializations.ocs.openshift.io storageclusters.ocs.openshift.io cephclients.ceph.rook.io cephobjectrealms.ceph.rook.io cephobjectzonegroups.ceph.rook.io cephobjectzones.ceph.rook.io cephrbdmirrors.ceph.rook.io --wait=true --timeout=5m
    Copy to Clipboard Toggle word wrap
  8. OpenShift Container Platform Web コンソールで、OpenShift Container Storage が完全にアンインストールされていることを確認するには、以下を実行します。

    1. HomeOverview をクリックし、ダッシュボードにアクセスします。
    2. Persistent Storage および Object Service タブが Cluster タブの横に表示されないことを確認します。

6.2. OpenShift Container Storage からのモニターリングスタックの削除

このセクションでは、モニターリングスタックを OpenShift Container Storage からクリーンアップします。

モニターリングスタックの設定の一部として作成される PVC は openshift-monitoring namespace に置かれます。

前提条件

手順

  1. openshift-monitoring namespace で現在実行されている Pod および PVC を一覧表示します。

    $ oc get pod,pvc -n openshift-monitoring
    NAME                           READY   STATUS    RESTARTS   AGE
    pod/alertmanager-main-0         3/3     Running   0          8d
    pod/alertmanager-main-1         3/3     Running   0          8d
    pod/alertmanager-main-2         3/3     Running   0          8d
    pod/cluster-monitoring-
    operator-84457656d-pkrxm        1/1     Running   0          8d
    pod/grafana-79ccf6689f-2ll28    2/2     Running   0          8d
    pod/kube-state-metrics-
    7d86fb966-rvd9w                 3/3     Running   0          8d
    pod/node-exporter-25894         2/2     Running   0          8d
    pod/node-exporter-4dsd7         2/2     Running   0          8d
    pod/node-exporter-6p4zc         2/2     Running   0          8d
    pod/node-exporter-jbjvg         2/2     Running   0          8d
    pod/node-exporter-jj4t5         2/2     Running   0          6d18h
    pod/node-exporter-k856s         2/2     Running   0          6d18h
    pod/node-exporter-rf8gn         2/2     Running   0          8d
    pod/node-exporter-rmb5m         2/2     Running   0          6d18h
    pod/node-exporter-zj7kx         2/2     Running   0          8d
    pod/openshift-state-metrics-
    59dbd4f654-4clng                3/3     Running   0          8d
    pod/prometheus-adapter-
    5df5865596-k8dzn                1/1     Running   0          7d23h
    pod/prometheus-adapter-
    5df5865596-n2gj9                1/1     Running   0          7d23h
    pod/prometheus-k8s-0            6/6     Running   1          8d
    pod/prometheus-k8s-1            6/6     Running   1          8d
    pod/prometheus-operator-
    55cfb858c9-c4zd9                1/1     Running   0          6d21h
    pod/telemeter-client-
    78fc8fc97d-2rgfp                3/3     Running   0          8d
    
    NAME                                                              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                  AGE
    persistentvolumeclaim/my-alertmanager-claim-alertmanager-main-0   Bound    pvc-0d519c4f-15a5-11ea-baa0-026d231574aa   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   8d
    persistentvolumeclaim/my-alertmanager-claim-alertmanager-main-1   Bound    pvc-0d5a9825-15a5-11ea-baa0-026d231574aa   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   8d
    persistentvolumeclaim/my-alertmanager-claim-alertmanager-main-2   Bound    pvc-0d6413dc-15a5-11ea-baa0-026d231574aa   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   8d
    persistentvolumeclaim/my-prometheus-claim-prometheus-k8s-0        Bound    pvc-0b7c19b0-15a5-11ea-baa0-026d231574aa   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   8d
    persistentvolumeclaim/my-prometheus-claim-prometheus-k8s-1        Bound    pvc-0b8aed3f-15a5-11ea-baa0-026d231574aa   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   8d
    Copy to Clipboard Toggle word wrap
  2. モニタリング configmap を編集します。

    $ oc -n openshift-monitoring edit configmap cluster-monitoring-config
    Copy to Clipboard Toggle word wrap
  3. 以下の例が示すように、OpenShift Container Storage ストレージクラスを参照する config セクションを削除し、これを保存します。

    Expand

    編集前

    .
    .
    .
    apiVersion: v1
    data:
      config.yaml: |
        alertmanagerMain:
          volumeClaimTemplate:
            metadata:
              name: my-alertmanager-claim
            spec:
              resources:
                requests:
                  storage: 40Gi
              storageClassName: ocs-external-storagecluster-ceph-rbd
        prometheusK8s:
          volumeClaimTemplate:
            metadata:
              name: my-prometheus-claim
            spec:
              resources:
                requests:
                  storage: 40Gi
              storageClassName: ocs-external-storagecluster-ceph-rbd
    kind: ConfigMap
    metadata:
      creationTimestamp: "2019-12-02T07:47:29Z"
      name: cluster-monitoring-config
      namespace: openshift-monitoring
      resourceVersion: "22110"
      selfLink: /api/v1/namespaces/openshift-monitoring/configmaps/cluster-monitoring-config
      uid: fd6d988b-14d7-11ea-84ff-066035b9efa8
    
    
    .
    .
    .
    Copy to Clipboard Toggle word wrap

    編集後

    .
    .
    .
    apiVersion: v1
    data:
      config.yaml: |
    kind: ConfigMap
    metadata:
      creationTimestamp: "2019-11-21T13:07:05Z"
      name: cluster-monitoring-config
      namespace: openshift-monitoring
      resourceVersion: "404352"
      selfLink: /api/v1/namespaces/openshift-monitoring/configmaps/cluster-monitoring-config
      uid: d12c796a-0c5f-11ea-9832-063cd735b81c
    .
    .
    .
    Copy to Clipboard Toggle word wrap

    この例では、alertmanagerMain および prometheusK8s モニターリングコンポーネントは OpenShift Container Storage PVC を使用しています。

  4. PVC を使用する Pod を一覧表示します。

    この例では、PVC を使用していた alertmanagerMain および prometheusK8s Pod は Terminating 状態にあります。これらの Pod が OpenShift Container Storage PVC を使用しなくなった後に PVC を削除できます。

    $ oc get pod,pvc -n openshift-monitoring
    NAME                                               READY   STATUS      RESTARTS AGE
    pod/alertmanager-main-0                            3/3     Terminating   0      10h
    pod/alertmanager-main-1                            3/3     Terminating   0      10h
    pod/alertmanager-main-2                            3/3     Terminating   0      10h
    pod/cluster-monitoring-operator-84cd9df668-zhjfn   1/1     Running       0      18h
    pod/grafana-5db6fd97f8-pmtbf                       2/2     Running       0      10h
    pod/kube-state-metrics-895899678-z2r9q             3/3     Running       0      10h
    pod/node-exporter-4njxv                            2/2     Running       0      18h
    pod/node-exporter-b8ckz                            2/2     Running       0      11h
    pod/node-exporter-c2vp5                            2/2     Running       0      18h
    pod/node-exporter-cq65n                            2/2     Running       0      18h
    pod/node-exporter-f5sm7                            2/2     Running       0      11h
    pod/node-exporter-f852c                            2/2     Running       0      18h
    pod/node-exporter-l9zn7                            2/2     Running       0      11h
    pod/node-exporter-ngbs8                            2/2     Running       0      18h
    pod/node-exporter-rv4v9                            2/2     Running       0      18h
    pod/openshift-state-metrics-77d5f699d8-69q5x       3/3     Running       0      10h
    pod/prometheus-adapter-765465b56-4tbxx             1/1     Running       0      10h
    pod/prometheus-adapter-765465b56-s2qg2             1/1     Running       0      10h
    pod/prometheus-k8s-0                               6/6     Terminating   1      9m47s
    pod/prometheus-k8s-1                               6/6     Terminating   1      9m47s
    pod/prometheus-operator-cbfd89f9-ldnwc             1/1     Running       0      43m
    pod/telemeter-client-7b5ddb4489-2xfpz              3/3     Running       0      10h
    
    NAME                                                      STATUS  VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                  AGE
    persistentvolumeclaim/ocs-alertmanager-claim-alertmanager-main-0   Bound    pvc-2eb79797-1fed-11ea-93e1-0a88476a6a64   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   19h
    persistentvolumeclaim/ocs-alertmanager-claim-alertmanager-main-1   Bound    pvc-2ebeee54-1fed-11ea-93e1-0a88476a6a64   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   19h
    persistentvolumeclaim/ocs-alertmanager-claim-alertmanager-main-2   Bound    pvc-2ec6a9cf-1fed-11ea-93e1-0a88476a6a64   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   19h
    persistentvolumeclaim/ocs-prometheus-claim-prometheus-k8s-0        Bound    pvc-3162a80c-1fed-11ea-93e1-0a88476a6a64   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   19h
    persistentvolumeclaim/ocs-prometheus-claim-prometheus-k8s-1        Bound    pvc-316e99e2-1fed-11ea-93e1-0a88476a6a64   40Gi       RWO            ocs-external-storagecluster-ceph-rbd   19h
    Copy to Clipboard Toggle word wrap
  5. 関連する PVC を削除します。ストレージクラスを使用するすべての PVC を削除してください。

    $ oc delete -n openshift-monitoring pvc <pvc-name> --wait=true --timeout=5m
    Copy to Clipboard Toggle word wrap

6.3. OpenShift Container Storage からの OpenShift Container Platform レジストリーの削除

このセクションを使用して、OpenShift Container Storage から OpenShift Container Platform レジストリーをクリーンアップします。代替ストレージを設定する必要がある場合は、イメージレジストリー を参照してください。

OpenShift Container Platform レジストリーの設定の一部として作成される PVC は openshift-image-registry namespace に置かれます。

前提条件

  • イメージレジストリーは OpenShift Container Storage PVC を使用するように設定されている必要があります。

手順

  1. configs.imageregistry.operator.openshift.io オブジェクトを編集し、storage セクションのコンテンツを削除します。

    $ oc edit configs.imageregistry.operator.openshift.io
    Copy to Clipboard Toggle word wrap
    Expand

    編集前

    .
    .
    .
    storage:
      pvc:
        claim: registry-cephfs-rwx-pvc
    .
    .
    .
    Copy to Clipboard Toggle word wrap

    編集後

    .
    .
    .
    storage:
      emptyDir: {}
    .
    .
    .
    Copy to Clipboard Toggle word wrap

    この例では、PVC は registry-cephfs-rwx-pvc と呼ばれ、これは安全に削除できます。

  2. PVC を削除します。

    $ oc delete pvc <pvc-name> -n openshift-image-registry --wait=true --timeout=5m
    Copy to Clipboard Toggle word wrap

6.4. OpenShift Container Storage からのクラスターロギング Operator の削除

このセクションでは、クラスターロギング Operator を OpenShift Container Storage からクリーンアップします。

クラスターロギング Operator の設定の一部として作成される PVC は openshift-logging namespace にあります。

前提条件

  • クラスターロギングインスタンスは、OpenShift Container Storage PVC を使用するように設定されている必要があります。

手順

  1. namespace の ClusterLogging インスタンスを削除します。

    $ oc delete clusterlogging instance -n openshift-logging --wait=true --timeout=5m
    Copy to Clipboard Toggle word wrap

    openshift-logging namespace の PVC は安全に削除できます。

  2. PVC を削除します。

    $ oc delete pvc <pvc-name> -n openshift-logging --wait=true --timeout=5m
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat