Rancher
Rancherでは、ユーザー資格証明やクラスタ資格証明などの多数の構成がConfigMapおよびネームスペース値として保持されます。rancher-backupオペレータは、Rancherのインストール、構成、およびデータをシームレスにバックアップおよびリストアする方法を提供します。
rancher-backupオペレータの前提条件
Rancherのバックアップまたはリストア操作に進む前に、次の詳細が役立ちます:
- オブジェクト・ストアのバケット名。
- Amazon S3互換のオブジェクト・ストレージ・バケット。これには、Oracle Cloudテナンシの任意のコンパートメント内のOracle Cloud Object Storageバケットを使用できます。
- 参照できるように、バケット名とテナンシ名を書き留めておきます。
- オブジェクト・ストレージを使用したバケットの作成の詳細は、「バケットの管理」を参照してください。
- プライベート・クラウド、エンタープライズ・ネットワークまたはエアギャップ環境では、MinIOまたは同等のオブジェクト・ストア・ソリューションを使用できます。
- Amazon S3互換のオブジェクト・ストレージ・バケット。これには、Oracle Cloudテナンシの任意のコンパートメント内のOracle Cloud Object Storageバケットを使用できます。
- オブジェクト・ストアの接頭辞名。これは、バックアップ・コンポーネントによって作成されるバケット内の子フォルダになります。
- オブジェクト・ストアのリージョン名。
- オブジェクト・ストアの署名キー。
- Amazon S3互換オブジェクト・ストアの認証に必要な署名キー。これはアクセス・キー/秘密キーのペアです。
- Oracle Cloud Infrastructureでは、ユーザーまたは管理者が顧客秘密キーを作成します。
- 関連するアクセス・キーが秘密キーに対して生成されます。
- 顧客秘密キーを作成するには、顧客秘密キーに関する項を参照してください。
Rancherをバックアップまたはリストアするには、最初にrancherBackup
を有効にする必要があります。
-
次の構成は、
rancherBackup
を有効にする方法を示しています。$ kubectl apply -f -<<EOF apiVersion: install.verrazzano.io/v1beta1 kind: Verrazzano metadata: name: example-verrazzano spec: profile: dev components: rancherBackup: enabled: true EOF
-
rancher-backup
の場合、ポッドはcattle-resources-system
ネームスペースに作成されます。# Sample of pods running after enabling the rancherBackup component $ kubectl get pod -n cattle-resources-system NAME READY STATUS RESTARTS AGE rancher-backup-5c4b985697-xw7md 1/1 Running 0 2d4h
-
Rancherでは、S3互換オブジェクト・ストアと通信するためにシークレットが必要です。そのため、ネームスペース
verrazzano-backup
にKubernetesシークレットrancher-backup-creds
を作成します。$ kubectl create secret generic -n <backup-namespace> <secret-name> --from-literal=accessKey=<accesskey> --from-literal=secretKey=<secretKey>
次に、例を示します。
$ kubectl create secret generic -n verrazzano-backup rancher-backup-creds --from-literal=accessKey="s5VLpXwa0xNZQds4UTVV" --from-literal=secretKey="nFFpvyxpQvb0dIQovsl0"
Rancherバックアップ
rancher-backupオペレータは、*.tar.gz
形式のバックアップ・ファイルをS3互換オブジェクト・ストアに作成します。
- Rancherバックアップを開始するには、Amazon S3互換オブジェクト・ストアをバック・エンドとして使用する、次のサンプル・カスタム・リソースYAMLファイルを作成します。オペレータは、
credentialSecretNamespace
値を使用して、Amazon S3バックアップ・シークレットを探す場所を決定します。$ kubectl apply -f - <<EOF apiVersion: resources.cattle.io/v1 kind: Backup metadata: name: <rancher-backup-name> spec: storageLocation: s3: credentialSecretName: <rancher backup credential name> credentialSecretNamespace: <namespace where credential object was created> bucketName: <object store bucket. This must be exist as noted in pre-requisites section> folder: <folder name. This folder will be auto created> region: <region name where bucket exists> endpoint: <object store endpoint configuration> resourceSetName: rancher-resource-set EOF
ノート: 前提条件に関する項の例のステップ3で、verrazzano-backup
ネームスペースにシークレットを作成しました。
次に、例を示します。
$ kubectl apply -f - <<EOF
apiVersion: resources.cattle.io/v1
kind: Backup
metadata:
name: rancher-backup-test
spec:
storageLocation:
s3:
credentialSecretName: rancher-backup-creds
credentialSecretNamespace: verrazzano-backup
bucketName: myvz-bucket
folder: rancher-backup
region: us-phoenix-1
endpoint: mytenancy.compat.objectstorage.us-phoenix-1.oraclecloud.com
resourceSetName: rancher-resource-set
EOF
*.tar.gz
ファイルは、storageLocation
フィールドで構成された場所に格納されます。バックアップが完了すると、rancher-backupオペレータはS3互換オブジェクト・ストアにファイルを作成します。
- 次のように、バックアップされたファイル名を取得できます:
$ kubectl get backups.resources.cattle.io rancher-backup-test NAME LOCATION TYPE LATEST-BACKUP RESOURCESET AGE STATUS rancher-backup-test One-time rancher-615034-957d182d-44cb-4b81-bbe0-466900049124-2022-11-14T16-42-28Z.tar.gz rancher-resource-set 54s Completed
Rancherスケジュール済バックアップ
スケジュール済のRancherバックアップを実装するには、Rancherのドキュメントの「Backup Configuration」を参照してください。
Rancherリストア
リストア操作中に、RancherはRancherおよび構成に関連するすべてのCRDを再作成することを確認します。Rancherのリストアは、リストア・プロセスを開始することをrancherBackup
に示すカスタム・リソースを作成することで実行されます。
-
Rancherリストア操作を開始するには、次のサンプル・カスタム・リソースYAMLファイルを作成します。
Restore
カスタム・リソースが作成されると、オペレータが、指定されたバックアップ*.tar.gz
ファイルにアクセスし、そのファイルからアプリケーション・データをリストアします。$ kubectl apply -f - <<EOF apiVersion: resources.cattle.io/v1 kind: Restore metadata: name: s3-restore spec: backupFilename: rancher-615034-957d182d-44cb-4b81-bbe0-466900049124-2022-11-14T16-42-28Z.tar.gz storageLocation: s3: credentialSecretName: rancher-backup-creds credentialSecretNamespace: verrazzano-backup bucketName: myvz-bucket folder: rancher-backup region: us-phoenix-1 endpoint: mytenancy.compat.objectstorage.us-phoenix-1.oraclecloud.com EOF
リソースは次の順序でリストアされます:
- カスタム・リソース定義(CRD)
- クラスタスコープのリソース
- ネームスペース・リソース
ノート:
backupFilename
は、以前に作成したRancherバックアップから取得されます。 -
すべてのRancherポッドが
RUNNING
状態になるまで待ちます。$ kubectl wait -n cattle-system --for=condition=ready pod -l app=rancher --timeout=600s pod/rancher-69976cffc6-bbx4p condition met pod/rancher-69976cffc6-fr75t condition met pod/rancher-69976cffc6-pcdf2 condition met