4.4. OpenShift Container Storage 외부 보안 업데이트
최신 버전의 OpenShift Container Storage로 업데이트한 후 OpenShift Container Storage 외부 시크릿을 업데이트합니다.
배치 업데이트에는 외부 시크릿을 업데이트할 필요가 없습니다. 예를 들어 OpenShift Container Storage 4.8.X에서 4.8.Y로 업데이트하는 경우
사전 요구 사항
- OpenShift Container Platform 클러스터를 4.8.z의 안정적인 최신 릴리스로 업데이트하고 클러스터 업데이트를 참조하십시오.
- OpenShift Container Storage Operator가 버전 4.8로 업그레이드되었습니다. 자세한 내용은 외부 모드에서 OpenShift Container Storage Operator의 자동 업데이트 활성화 또는 외부 모드에서 OpenShift Container Storage Operator 수동 업데이트를 참조하십시오.
- Block 및 File in the Status card에서 Storage Cluster 에 녹색 눈금이 있는지 확인합니다.
-
상태 카드의 Object 에서 Object Service 및 Data Resiliency 가
Ready
상태(Green tick) 상태인지 확인합니다. - Red Hat Ceph Storage에는 Ceph 대시보드가 설치되어 구성되어 있어야 합니다.
절차
ceph-external-cluster-details-exporter.py
python 스크립트의 OpenShift Container Storage 버전을 다운로드합니다.# 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=<client_name_used_for_OCS_4.7_install>
--run-as-user
OpenShift Container Storage 4.7 배포 중에 사용되는 클라이언트 이름입니다. OpenShift Container Storage 4.7 배포 중에 이 옵션을 사용하지 않은 경우 기본 클라이언트 이름
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 <client_name_used_for_OCS_4.7_install> [optional arguments]
--rbd-data-pool-name
- OpenShift Container Storage에서 블록 스토리지를 제공하는 데 사용되는 필수 매개변수입니다.
--rgw-endpoint
-
은 선택 사항입니다. OpenShift Container Storage용 Ceph Rados 게이트웨이를 통해 오브젝트 스토리지를 프로비저닝할 경우 이 매개변수를 제공합니다. 다음과 같은 형식으로 끝점을 제공합니다. <
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 출력을 저장합니다.
출력 예:
[{"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 웹 콘솔에 로그인합니다.
- 워크로드 → 시크릿 을 클릭합니다.
-
project를
openshift-storage
로 설정합니다. - rook-ceph-external-cluster-details 를 클릭합니다.
- 작업(hiera) → 시크릿 편집 을 클릭합니다.
- 찾아보기 를 클릭하고 JSON 파일을 업로드합니다.
- 저장을 클릭합니다.
검증 단계
OpenShift 웹 콘솔에서 스토리지 → 개요 → 오브젝트 탭으로 이동합니다.
-
상태 카드에서 Object Service 및 Data Resiliency 가
Ready
상태(Green tick)인지 확인합니다.
-
상태 카드에서 Object Service 및 Data Resiliency 가
OpenShift 웹 콘솔에서 스토리지 → 개요 → 블록 및 파일 탭으로 이동합니다.
- 상태 카드에서 스토리지 클러스터에 녹색 눈금 이 있는지 확인합니다.