第6章 OpenShift Data Foundation 外部シークレットの更新
OpenShift Data Foundation の最新バージョンへの更新後に、OpenShift Data Foundation 外部シークレットを更新します。
バッチ更新には、外部シークレットを更新する必要はありません。たとえば、OpenShift Data Foundation 4.12.x から 4.12.y に更新する場合。
前提条件
- OpenShift Container Platform クラスターを 4.12.z の最新の安定したリリースに更新している。詳細は、Updating Clusters を参照してください。
OpenShift Data Foundation クラスターが正常であること、およびデータに回復性があることを確認する。Storage → 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
更新後のユーザーパーミッションは以下のように設定されます。
client.csi-cephfs-node key: AQCYz0piYgu/IRAAipji4C8+Lfymu9vOrox3zQ== caps: [mds] allow rw caps: [mgr] allow rw caps: [mon] allow r, allow command 'osd blocklist' caps: [osd] allow rw tag cephfs = client.csi-cephfs-provisioner key: AQCYz0piDUMSIxAARuGUyhLXFO9u4zQeRG65pQ== caps: [mgr] allow rw caps: [mon] allow r, allow command 'osd blocklist' caps: [osd] allow rw tag cephfs metadata=* client.csi-rbd-node key: AQCYz0pi88IKHhAAvzRN4fD90nkb082ldrTaHA== caps: [mon] profile rbd, allow command 'osd blocklist' caps: [osd] profile rbd client.csi-rbd-provisioner key: AQCYz0pi6W8IIBAAgRJfrAW7kZfucNdqJqS9dQ== caps: [mgr] allow rw caps: [mon] profile rbd, allow command 'osd blocklist' caps: [osd] profile rbd
以前にダウンロードした 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 → 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 エンドポイントの詳細が含まれている場合にのみ表示されます。
- 検証手順が失敗した場合は、Red Hat サポート にお問い合わせください。