1.2. OADP Operator のインストールおよび IAM ロールの提供

AWS Security Token Service (AWS STS) は、IAM またはフェデレーションされたユーザーの短期認証情報を提供するグローバル Web サービスです。STS を使用した Red Hat OpenShift Service on AWS (ROSA) は、ROSA クラスターに推奨される認証情報モードです。このドキュメントでは、AWS STS を使用して (ROSA) に OpenShift API for Data Protection (OADP) をインストールする方法を説明します。

重要

Restic は、AWS STS 環境を使用した ROSA 上の OADP ではサポートされていません。Restic サービスが無効になっていることを確認します。ネイティブスナップショットを使用してボリュームをバックアップします。詳細は、既知の問題 を参照してください。

前提条件

  • 必要なアクセス権とトークンを備えた ROSA OpenShift クラスター。手順は、AWS 認証情報の準備 の手順を参照してください。

手順

  1. 次のコマンドを入力して、AWS トークンファイルから Openshift シークレットを作成します。

    1. 認証情報ファイルを作成します。

      $ cat <<EOF > ${SCRATCH}/credentials
      [default]
      role_arn = ${ROLE_ARN}
      web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token
      EOF
    2. OpenShift シークレットを作成します。

      $ oc -n openshift-adp create secret generic cloud-credentials \
        --from-file=${SCRATCH}/credentials
  2. OADP Operator をインストールします。

    1. Red Hat OpenShift Service on AWS Web コンソールで、Operators OperatorHub に移動します。
    2. OADP Operator を検索し、インストール をクリックします。
  3. AWS 認証情報を使用して AWS クラウドストレージを作成します。

    $ cat << EOF | oc create -f -
    apiVersion: oadp.openshift.io/v1alpha1
    kind: CloudStorage
    metadata:
      name: ${CLUSTER_NAME}-oadp
      namespace: openshift-adp
    spec:
      creationSecret:
        key: credentials
        name: cloud-credentials
      enableSharedConfig: true
      name: ${CLUSTER_NAME}-oadp
      provider: aws
      region: $REGION
    EOF
  4. バックアップとボリュームスナップショットが保存されるストレージへの接続を設定するために使用される DataProtectionApplication リソース を作成します。

    $ cat << EOF | oc create -f -
    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: ${CLUSTER_NAME}-dpa
      namespace: openshift-adp
    spec:
      backupLocations:
      - bucket:
          cloudStorageRef:
            name: ${CLUSTER_NAME}-oadp
          credential:
            key: credentials
            name: cloud-credentials
          default: true
          config:
            region: ${REGION}
      configuration:
        velero:
          defaultPlugins:
          - openshift
          - aws
          restic:
            enable: false
      snapshotLocations:
      - velero:
          config:
            credentialsFile: /tmp/credentials/openshift-adp/cloud-credentials-credentials 1
            enableSharedConfig: "true" 2
            profile: default 3
            region: ${REGION} 4
          provider: aws
    EOF
    1
    credentialsFile は、Pod のバケット認証情報のマウントされた場所です。
    2
    enableSharedConfig を使用すると、snapshotLocations はバケットに定義された認証情報を共有または再利用できます。
    3
    プロファイルの Velero のデフォルトを default と想定し ます。
    4
    region を AWS リージョン として指定します。これはクラスターリージョンと同じである必要があります。
    注記

    OADP は ROSA 環境で Restic をサポートしていないため、resticenable パラメーターは false に設定されています。

    OADP ドキュメント に記載されているように、OpenShift アプリケーションをバックアップおよび復元する準備が整いました。