第6章 マネージドクラスターでの OpenShift-DR Cluster Operator のインストール
手順
- 各マネージドクラスターで OperatorHub に移動し、OpenShift-DR Cluster Operator を絞り込みます。
画面の指示に従って、Operator をプロジェクト
openshift-dr-system
にインストールします。注記OpenShift DR Cluster Operator
は、プライマリーマネージドクラスター と セカンダリーマネージドクラスター の両方にインストールする必要があります。s3 エンドポイント間の SSL アクセスを設定 して、メタデータを安全なトランスポートプロトコルを使用する MCG オブジェクトバケットの代替クラスターと、オブジェクトバケットへのアクセスを確認するための ハブクラスター に保存できるようにします。
注記すべての OpenShift クラスターが環境の署名済み証明書セットを使用してデプロイされる場合、このセクションは省略できます。
プライマリーマネージドクラスター の Ingress 証明書を展開し、出力を
primary.crt
に保存します。$ oc get cm default-ingress-cert -n openshift-config-managed -o jsonpath="{['data']['ca-bundle\.crt']}" > primary.crt
セカンダリーマネージドクラスターの Ingress 証明書を抽出し、出力を
secondary.crt
に保存します。$ oc get cm default-ingress-cert -n openshift-config-managed -o jsonpath="{['data']['ca-bundle\.crt']}" > secondary.crt
プライマリーマネージドクラスター、セカンダリーマネージドクラスター、および ハブクラスター 上のファイル名
cm-clusters-crt.yaml
を使用して、リモートクラスターの証明書バンドルを保持する新しい ConfigMap を作成します。注記この例のように、クラスターごとに 3 つ以上の証明書が存在する可能性があります。
apiVersion: v1 data: ca-bundle.crt: | -----BEGIN CERTIFICATE----- <copy contents of cert1 from primary.crt here> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <copy contents of cert2 from primary.crt here> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <copy contents of cert3 primary.crt here> -----END CERTIFICATE---- -----BEGIN CERTIFICATE----- <copy contents of cert1 from secondary.crt here> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <copy contents of cert2 from secondary.crt here> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <copy contents of cert3 from secondary.crt here> -----END CERTIFICATE----- kind: ConfigMap metadata: name: user-ca-bundle namespace: openshift-config
プライマリーマネージドクラスター、セカンダリーマネージドクラスター、および ハブクラスター で以下のコマンドを実行してファイルを作成します。
$ oc create -f cm-clusters-crt.yaml
出力例:
configmap/user-ca-bundle created
重要ハブクラスター が DRPolicy リソースを使用してオブジェクトバケットへのアクセスを確認するには、同じ ConfigMap、
cm-clusters-crt.yaml
を ハブクラスター に作成する必要があります。デフォルトの プロキシー クラスターリソースを変更します。
以下のコンテンツを新しい YAML ファイル
proxy-ca.yaml
にコピーし、保存します。apiVersion: config.openshift.io/v1 kind: Proxy metadata: name: cluster spec: trustedCA: name: user-ca-bundle
この新しいファイルを、プライマリーマネージドクラスター、セカンダリーマネージドクラスター、および ハブクラスター 上のデフォルトのプロキシーリソースに適用します。
$ oc apply -f proxy-ca.yaml
出力例:
proxy.config.openshift.io/cluster configured
マルチクラウドオブジェクトゲートウェイ (MCG) キーと外部 S3 エンドポイントを取得します。
MCG が プライマリーマネージドクラスター および セカンダリーマネージドクラスター にインストールされているかどうか、および Phase が
Ready
かどうかを確認します。$ oc get noobaa -n openshift-storage
出力例:
NAME MGMT-ENDPOINTS S3-ENDPOINTS IMAGE PHASE AGE noobaa ["https://10.70.56.161:30145"] ["https://10.70.56.84:31721"] quay.io/rhceph-dev/mcg-core@sha256:c4b8857ee9832e6efc5a8597a08b81730b774b2c12a31a436e0c3fadff48e73d Ready 27h
以下の YAML ファイルを、ファイル名
odrbucket.yaml
にコピーします。apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: odrbucket namespace: openshift-dr-system spec: generateBucketName: "odrbucket" storageClassName: openshift-storage.noobaa.io
プライマリーマネージドクラスター および セカンダリーマネージドクラスター の両方で、MCG バケット
odrbucket
を作成します。$ oc create -f odrbucket.yaml
出力例:
objectbucketclaim.objectbucket.io/odrbucket created
以下のコマンドを使用して、各マネージドクラスターの
odrbucket
OBC アクセスキーを base-64 でエンコード された値として展開します。$ oc get secret odrbucket -n openshift-dr-system -o jsonpath='{.data.AWS_ACCESS_KEY_ID}{"\n"}'
出力例:
cFpIYTZWN1NhemJjbEUyWlpwN1E=
以下のコマンドを使用して、各マネージドクラスターの
odrbucket
OBC シークレットキーを base-64 でエンコード された値として展開します。$ oc get secret odrbucket -n openshift-dr-system -o jsonpath='{.data.AWS_SECRET_ACCESS_KEY}{"\n"}'
出力例:
V1hUSnMzZUoxMHRRTXdGMU9jQXRmUlAyMmd5bGwwYjNvMHprZVhtNw==
マネージドクラスターの S3 シークレットを作成します。
必要な MCG 情報が抽出されたので、プライマリーマネージドクラスター および セカンダリーマネージドクラスター に新しいシークレットが作成されているはずです。これらの新規シークレットは、両方のマネージドクラスターの MCG アクセスとシークレットキーを保存します。
注記OpenShift DR には、マネージドクラスターからのワークロードの関連クラスターデータを保存するため、およびフェイルオーバーまたは再配置アクション中のワークロード復旧のオーケストレーションを行うために、1 つ以上の S3 ストアが必要です。これらの手順は、Multicloud Gateway (MCG) を使用して必要なオブジェクトバケットを作成するために適用できます。OpenShift Data Foundation のインストールにより、MCG がすでにインストールされているはずです。
プライマリーマネージドクラスター用の以下の S3 シークレット YAML 形式を、ファイル名
odr-s3secret-primary.yaml
にコピーします。apiVersion: v1 data: AWS_ACCESS_KEY_ID: <primary cluster base-64 encoded access key> AWS_SECRET_ACCESS_KEY: <primary cluster base-64 encoded secret access key> kind: Secret metadata: name: odr-s3secret-primary namespace: openshift-dr-system
<primary cluster base-64 encoded access key> および <primary cluster base-64 encoded secret access key> は、先程の手順で取得した実際の値に置き換えます。
プライマリーマネージドクラスター および セカンダリーマネージドクラスター で、このシークレットを作成します。
$ oc create -f odr-s3secret-primary.yaml
出力例:
secret/odr-s3secret-primary created
セカンダリーマネージドクラスター用の以下の S3 シークレット YAML 形式を、ファイル名
odr-s3secret-secondary.yaml
にコピーします。apiVersion: v1 data: AWS_ACCESS_KEY_ID: <secondary cluster base-64 encoded access key> AWS_SECRET_ACCESS_KEY: <secondary cluster base-64 encoded secret access key> kind: Secret metadata: name: odr-s3secret-secondary namespace: openshift-dr-system
<secondary cluster base-64 encoded access key> および <secondary cluster base-64 encoded secret access key> を、手順 4 で取得した実際の値に置き換えます。
プライマリーマネージドクラスター および セカンダリーマネージドクラスター で、このシークレットを作成します。
$ oc create -f odr-s3secret-secondary.yaml
出力例:
secret/odr-s3secret-secondary created
重要アクセスキーおよびシークレットキーの値は base-64 でエンコーディングされている 必要があります。エンコードされたキーの値は、前の手順で取得されています。
各マネージドクラスターで OpenShift-DR Cluster Operator ConfigMap を設定します。
以下のコマンドを使用して、外部 S3 エンドポイント s3CompatibleEndpoint または各マネージドクラスターで MCG のルートを検索します。
$ oc get route s3 -n openshift-storage -o jsonpath --template="https://{.spec.host}{'\n'}"
出力例:
https://s3-openshift-storage.apps.perf1.example.com
重要一意の s3CompatibleEndpoint ルートまたは
s3-openshift-storage.apps.<primary clusterID>.<baseDomain>
およびs3-openshift-storage.apps.<secondary clusterID>.<baseDomain>
は、プライマリーマネージドクラスター と セカンダリーマネージドクラスター の両方で取得する必要があります。odrbucket
OBC バケット名を検索します。$ oc get configmap odrbucket -n openshift-dr-system -o jsonpath='{.data.BUCKET_NAME}{"\n"}'
出力例:
odrbucket-2f2d44e4-59cb-4577-b303-7219be809dcd
重要一意の s3Bucket 名 odrbucket-<your value1> と odrbucket-<your value2> は、プライマリーマネージドクラスター と セカンダリーマネージドクラスター の両方で取得する必要があります。
ConfigMap の
ramen-dr-cluster-operator-config
を変更して、新規コンテンツを追加します。$ oc edit configmap ramen-dr-cluster-operator-config -n openshift-dr-system
s3StoreProfiles
で開始する以下の新しいコンテンツを、プライマリーマネージドクラスター および セカンダリーマネージドクラスター の ConfigMap に追加します。[...] data: ramen_manager_config.yaml: | apiVersion: ramendr.openshift.io/v1alpha1 kind: RamenConfig [...] ramenControllerType: "dr-cluster" ### Start of new content to be added s3StoreProfiles: - s3ProfileName: s3-primary s3CompatibleEndpoint: https://s3-openshift-storage.apps.<primary clusterID>.<baseDomain> s3Region: primary s3Bucket: odrbucket-<your value1> s3SecretRef: name: odr-s3secret-primary namespace: openshift-dr-system - s3ProfileName: s3-secondary s3CompatibleEndpoint: https://s3-openshift-storage.apps.<secondary clusterID>.<baseDomain> s3Region: secondary s3Bucket: odrbucket-<your value2> s3SecretRef: name: odr-s3secret-secondary namespace: openshift-dr-system [...]