第6章 OpenShift Data Foundation 外部シークレットの更新
OpenShift Data Foundation の最新バージョンへの更新後に、OpenShift Data Foundation 外部シークレットを更新します。
バッチ更新には、外部シークレットを更新する必要はありません。たとえば、OpenShift Data Foundation 4.9.X から 4.9.Y に更新する場合。
前提条件
- OpenShift Container Platform クラスターを 4.9.z の最新の安定したリリースに更新している。詳細は、Updating Clusters を参照してください。
- OpenShift Container Storage Operator が OpenShift Data Foundation バージョン 4.9 にアップグレードされている。詳細は、Updating Red Hat OpenShift Container Storage 4.8 to Red Hat OpenShift Data Foundation を参照してください。
OpenShift Data Foundation クラスターが正常であること、およびデータに回復性があることを確認します。Storage
OpenShift Data foundation Storage Systems タブに移動し、ストレージシステム名をクリックします。 - Overview - Block and File タブで Status カードをチェックして、Storage cluster に正常であることを示す緑色のチェックマークが表示されていることを確認します。
- Object タブをクリックして、Object Service および Data resiliency に正常であることを示す緑色のチェックマークが表示されていることを確認します。RADOS Object Gateway は、OpenShift Data Foundation を外部モードでデプロイする際に、RADOS Object Gateway エンドポイントの詳細が含まれている場合にのみ表示されます。
- Red Hat Ceph Storage では、Ceph ダッシュボードがインストールされ、設定されている必要がある。
手順
ceph-external-cluster-details-exporter.py
Python スクリプトの OpenShift Data Foundation バージョンをダウンロードします。# oc get csv $(oc get csv -n openshift-storage | grep ocs-operator | awk '{print $1}') -n openshift-storage -o jsonpath='{.metadata.annotations.external\.features\.ocs\.openshift\.io/export-script}' | base64 --decode > ceph-external-cluster-details-exporter.py
更新パーミッションは、外部の Red Hat Ceph Storage クラスターのクライアントノードで
ceph-external-cluster-details-exporter.py
を実行して、外部の Red Hat Ceph Storage クラスターに制限を課します。これを行うには、Red Hat Ceph Storage の管理者に問い合わせる必要がある場合があります。# python3 ceph-external-cluster-details-exporter.py --upgrade --run-as-user=<ocs_client_name>
--run-as-user
OpenShift Data Foundation クラスターのデプロイメント時に使用されるクライアント名。別のクライアント名が設定されていない場合は、デフォルトのクライアント名
client.healthchecker
を使用します。ユーザーの更新されたパーミッションは以下のように設定されます。
caps: [mgr] allow command config caps: [mon] allow r, allow command quorum_status, allow command 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 スクリプトを実行し、外部の Red Hat Ceph Storage クラスターから生成された JSON 出力を保存します。
以前にダウンロードした Python スクリプトを実行します。
# python3 ceph-external-cluster-details-exporter.py --rbd-data-pool-name <rbd block pool name> --monitoring-endpoint <ceph mgr prometheus exporter endpoint> --monitoring-endpoint-port <ceph mgr prometheus exporter port> --rgw-endpoint <rgw endpoint> --run-as-user <ocs_client_name> [optional arguments]
--rbd-data-pool-name
- これは、OpenShift Data Foundation でブロックストレージを提供するために使用される必須のパラメーターです。
--rgw-endpoint
-
これは任意になります。OpenShift Data Foundation の Ceph Rados Gateway でオブジェクトストレージをプロビジョニングする場合に、このパラメーターを指定します。
<ip_address>:<port>
の形式でエンドポイントを指定します。 --monitoring-endpoint
- これは任意になります。OpenShift Container Platform クラスターから到達可能な、アクティブ mgr およびスタンバイ mgr の IP アドレスのコンマ区切りリストを受け入れます。指定しない場合には、値が自動的に入力されます。
--monitoring-endpoint-port
-
これは任意になります。これは
--monitoring-endpoint
で指定された ceph-mgr Prometheus エクスポーターに関連付けられるポートです。指定しない場合には、値が自動的に入力されます。 --run-as-user
OpenShift Data Foundation クラスターのデプロイメント時に使用されるクライアント名。別のクライアント名が設定されていない場合は、デフォルトのクライアント名
client.healthchecker
を使用します。注記monitoring-endpoint および monitoring-endpoint-port を除くオプション引数を含むすべてのパラメーターが、外部モードでの OpenShift Data Foundation のデプロイメント時に使用したパラメーターと同じであることを確認します。
前の手順でスクリプトを実行した後に生成された 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": "<user-id>", "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": "<pool>"}}, {"name": "monitoring-endpoint", "kind": "CephCluster", "data": {"MonitoringEndpoint": "xxx.xxx.xxx.xxxx", "MonitoringPort": "xxxx"}}, {"name": "rook-ceph-dashboard-link", "kind": "Secret", "data": {"userID": "ceph-dashboard-link", "userKey": "<user-key>"}}, {"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.xxxx", "poolPrefix": "default"}}, {"name": "rgw-admin-ops-user", "kind": "Secret", "data": {"accessKey": "<access-key>", "secretKey": "<secret-key>"}}]
生成された JSON ファイルをアップロードします。
- OpenShift Web コンソールにログインします。
-
Workloads
Secrets をクリックします。 -
プロジェクトを
openshift-storage
に設定します。 - rook-ceph-external-cluster-details をクリックします。
-
Actions (⋮)
Edit Secret をクリックします。 - Browse をクリックして JSON ファイルをアップロードします。
- Save をクリックします。
検証手順
OpenShift Data Foundation クラスターが正常であり、データが回復性があることを確認するには、Storage
OpenShift Data foundation Storage Systems タブに移動してから、ストレージシステム名をクリックします。 -
Overview
Block and File タブで、Details カードをチェックして、RHCS ダッシュボードのリンクが利用可能であることを確認し、Status カードをチェックして、Storage Cluster に正常であることを示す緑色のチェックマークが表示されていることも確認します。 - Object タブをクリックして、Object Service および Data resiliency に正常であることを示す緑色のチェックマークが表示されていることを確認します。RADOS Object Gateway は、OpenShift Data Foundation を外部モードでデプロイする際に、RADOS Object Gateway エンドポイントの詳細が含まれている場合にのみ表示されます。
-
Overview