Menu Close

第10章 operator を使用した 3scale のバックアップと復元

本章では、APIManager カスタムリソース (CR) を使用してデプロイされた Red Hat 3scale API Management インストールのバックアップおよび復元機能について説明します。ここでは、CRD は 3scale operator によって提供されます。

operator 機能からのカスタムリソースは、3scale インストールの一部ではありません。このため、3scale インストールのバックアップおよび復元機能の一部としてカスタムリソースは含まれません。

重要

operator を使用した 3scale のバックアップおよび復元は、テクノロジープレビューの機能としてのみ提供されます。テクノロジープレビューの機能は、Red Hat の実稼働環境のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、開発プロセスの中でお客様に機能性のテストとフィードバックをしていただくことを目的としています。Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、「テクノロジプレビュー機能のサポート範囲」を参照してください。

前提条件

  • 3scale インストール環境

以降のセクションでは、operator を使用して 3scale のバックアップおよび復元を行う手順を説明します。

10.1. operator を使用した 3scale のバックアップ

以下のセクションでは、APIManager カスタムリソースによってデプロイされた 3scale インストールのバックアップに必要な情報および手順を説明します。

10.1.1. バックアップの可能なシナリオ

バックアップが可能な 3scale インストール設定については、以下のセクションを参照してください。

前提条件

  • 3scale 外部データベースのバックアップ

    • backend-redis
    • system-redis
    • system-database - MySQL または PostgreSQL
  • PVC がバックアップデータを保管するのに十分な容量のプロビジョニング
注記

APIManager を使用してデプロイされた 3scale デプロイメントは、S3 を System の FileStorage として使用してバックアップすることはできません。

10.1.2. バックアップシナリオのスコープ

バックアップ機能は、以下のデータベースが外部で設定されている場合に利用できます。

  • バックエンド Redis データベース
  • システム Redis データベース
  • システムデータベース: MySQL または PostgreSQL

10.1.3. バックアップされるデータ

以下の表は、バックアップされるデータの一覧を示しています。

表10.1 バックアップされるデータ

ObjectObject-type データ

Secret

  • system-smtp
  • system-seed
  • backend-internal-api
  • backend-listener
  • system-events-hook
  • system-app
  • system-recaptcha
  • zync
  • system-master-apicast
  • system-memcache
  • system-database
  • backend-redis
  • system-redis

ConfigMaps

  • system-environment
  • apicast-environment

APIManager

APIManager カスタムリソース Kubernetes オブジェクト定義: json スキーマ定義

System FileStorage

System FileStorage の場所が PersistentVolumeClaim (PVC) にある場合

10.1.4. 3scale のバックアップ

既存の APIManager を使用してデプロイされた 3scale インストールのバックアップを作成するには、以下の手順に従います。

手順

  1. 以下の Kubernetes Secret のバックアップを作成します。

    • backend-redis
    • system-redis
    • system-database
  2. 例 1 に示すように、APIManager オブジェクトで管理される 3scale インストールがデプロイされるのと同じ namespace に、APIManagerBackup カスタムリソースを作成します。

    例 1

      apiVersion: apps.3scale.net/v1alpha1
      kind: APIManagerBackup
      metadata:
       name: example-apimanagerbackup-pvc
      spec:
        backupDestination:
          persistentVolumeClaim:
            resources:
              requests: "10Gi"

    例 2 は、既存の PersistentVolume 名を提供します。

      apiVersion: apps.3scale.net/v1alpha1
      kind: APIManagerBackup
      metadata:
       name: example-apimanagerbackup-pvc
      spec:
        backupDestination:
          persistentVolumeClaim:
            # resources specification is required but ignored when providing a volumeName as per K8s PVCs requirements behavior
            resources:
              requests: "10Gi"
            volumeName: "my-preexisting-persistent-volume"

  3. APIManagerBackup が終了するまで待ちます。APIManagerBackup の内容を取得し、.status.completed フィールドが true に設定されるまで待機して、これを確認します。

バックアップの内容の詳細は、「バックアップされたデータ」を 参照してください。

APIManagerBackup のステータスセクションのその他のフィールドは、設定されたバックアップ先が PVC の場合にデータがバックアップされている PVC の名前等、バックアップの詳細が表示されます。

後で参照するために、status.backupPersistentVolumeClaimName フィールドの値を書き留めておきます。APIManagerRestoreAPIManager インストールを復元する場合、必要なフィールドの 1 つは PersistentVolumeClaimName バックアップソースです。