第8章 カスタムリソースを使用した 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 のバックアップおよび復元を行う手順を説明します。
8.1. operator を使用した 3scale のバックアップ
以下のセクションでは、APIManager カスタムリソースによってデプロイされた 3scale インストールのバックアップに必要な情報および手順を説明します。
8.1.1. バックアップの可能なシナリオ
バックアップが可能な 3scale インストール設定については、以下のセクションを参照してください。
前提条件
3scale 外部データベースのバックアップ
-
backend-redis
-
system-redis
-
system-database
- MySQL または PostgreSQL
-
- PVC がバックアップデータを保管するのに十分な容量のプロビジョニング
APIManager を使用してデプロイされた 3scale デプロイメントは、S3 を System の FileStorage として使用してバックアップすることはできません。
8.1.2. バックアップシナリオのスコープ
バックアップ機能は、以下のデータベースが外部で設定されている場合に利用できます。
- バックエンド Redis データベース
- システム Redis データベース
- システムデータベース: MySQL または PostgreSQL
8.1.3. バックアップされるデータ
以下の表は、バックアップされるデータの一覧を示しています。
オブジェクト | Object-type データ |
---|---|
Secret |
|
ConfigMaps |
|
APIManager | APIManager カスタムリソース Kubernetes オブジェクト定義: json スキーマ定義 |
System FileStorage | System FileStorage の場所が PersistentVolumeClaim (PVC) にある場合 |
8.1.4. 3scale のバックアップ
既存の APIManager を使用してデプロイされた 3scale インストールのバックアップを作成するには、以下の手順に従います。
手順
以下の Kubernetes Secret のバックアップを作成します。
-
backend-redis
-
system-redis
-
system-database
-
例 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"
-
APIManagerBackup
が終了するまで待ちます。APIManagerBackup
の内容を取得し、.status.completed
フィールドが true に設定されるまで待機して、これを確認します。
バックアップの内容の詳細は、バックアップされるデータ を参照してください。
APIManagerBackup
のステータスセクションのその他のフィールドは、設定されたバックアップ先が PVC の場合にデータがバックアップされている PVC の名前など、バックアップの詳細が表示されます。
後で参照するために、status.backupPersistentVolumeClaimName
フィールドの値を書き留めておきます。APIManagerRestore
で APIManager インストールを復元する場合、必要なフィールドの 1 つは PersistentVolumeClaimName
バックアップソースです。