OpenShift Container Storage is now OpenShift Data Foundation starting with version 4.9.
4.4. OpenShift Container Storage 外部シークレットの更新
OpenShift Container Storage の最新バージョンに更新した後、OpenShift Container Storage の外部シークレットを更新します。
バッチ更新には、外部シークレットを更新する必要はありません。たとえば、OpenShift Container Storage4.8.X から 4.8.Y に更新する場合。
前提条件
- OpenShift Container Platform クラスターを 4.8.z の最新の安定したリリースに更新する場合は、Updating Clusters を参照してください。
- OpenShift Container Storage Operator がバージョン 4.8 にアップグレードされます。詳細は、Enabling automatic updates for OpenShift Container Storage operator in external mode または Manually updating OpenShift Container Storage operator in external mode を参照してください。
- Status カードの Block and File で、Storage Cluster に緑色のチェックマークが付いていることを確認します。
-
Status カードの Object で、Object Service および Data Resiliency の両方が
Ready
状態 (緑のチェックマーク) にあることを確認します。 - Red Hat Ceph Storage では、Ceph ダッシュボードがインストールされ、設定されている必要がある。
手順
ceph-external-cluster-details-exporter.py
Python スクリプトの OpenShift Container Storage 4.6 バージョンをダウンロードします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# 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 の管理者に問い合わせる必要がある場合があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow python3 ceph-external-cluster-details-exporter.py --upgrade --run-as-user=<client_name_used_for_OCS_4.7_install>
# python3 ceph-external-cluster-details-exporter.py --upgrade --run-as-user=<client_name_used_for_OCS_4.7_install>
--run-as-user
OpenShift Container Storage 4.7 のデプロイメント時に使用されるクライアント名。このオプションが OpenShift Container Storage 4.7 のデプロイメント時に使用されない場合、デフォルトのクライアント名
client.healthchecker
が設定されます。ユーザーの更新されたパーミッションは以下のように設定されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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 スクリプトを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 <client_name_used_for_OCS_4.7_install> [optional arguments]
# 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 <client_name_used_for_OCS_4.7_install> [optional arguments]
--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 エクスポーターに関連付けられるポートです。指定しない場合には、値が自動的に入力されます。 --run-as-user
OpenShift Container Storage 4.7 のデプロイメント時に使用されるクライアント名。このオプションが OpenShift Container Storage 4.7 のデプロイメント時に使用されない場合、デフォルトのクライアント名
client.healthchecker
が設定されます。注記monitoring-endpoint および monitoring-endpoint-port を除くオプション引数を含むすべてのパラメーターが、外部モードでの OpenShift Container Storage 4.7 のデプロイメント時に使用したパラメーターと同じであることを確認します。
前の手順でスクリプトを実行した後に生成された JSON 出力を保存します。
出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [{"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"}}]
[{"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"}}]
生成された JSON ファイルをアップロードします。
- OpenShift Web コンソールにログインします。
-
Workloads
Secrets をクリックします。 -
プロジェクトを
openshift-storage
に設定します。 - rook-ceph-external-cluster-details をクリックします。
-
Actions (⋮)
Edit Secret をクリックします。 - Browse をクリックして JSON ファイルをアップロードします。
- Save をクリックします。
検証手順
OpenShift Web コンソールで、Storage
Overview Object タブにナビゲートします。 -
Status card で、Object Service と Data Resiliency の両方が
Ready
状態 (緑のチェックマーク) にあることを確認します。
-
Status card で、Object Service と Data Resiliency の両方が
OpenShift Web コンソールで、Storage
Overview Block and File タブにナビゲートします。 - Status カードで、Storage Cluster に緑色のチェックマークが表示されていることを確認します。