Veeam Kastenを利用する | IDCFクラウド ご利用ガイド

Veeam Kastenを利用する


本ドキュメントでは、Veeam Kastenを利用したRKEクラスターからRKE2クラスターへの移行方法について説明します。

はじめに

Veeam Kastenは、Veeam Softwareが提供するKubernetesネイティブのバックアップソリューションです。 取得したバックアップは、別のクラスターへのリストア(クラスター間移行)もサポートします。

Veeam Kastenを利用したRKE1クラスターからRKE2クラスターへの移行方法を説明します。

免責事項

  • Veeam KastenはVeeam Softwareが提供するソフトウェアであり、IDCフロンティアが提供するものではありません。
  • Veeam Kastenのライセンス提供およびご質問や技術的なサポートはIDCフロンティアのサポート対象外となりますので、あらかじめご了承ください。
  • 本ドキュメントに記載された内容についても、IDCフロンティアのサポート対象外となります。
  • 有償ライセンス/サポートが必要な場合は、Veeam Softwareへ直接お問い合わせいただくようお願いいたします。
  • 本ドキュメントはIDCフロンティアが独自に作成したものであり、Veeam Softwareとは一切関係がございません。Veeam Softwareへの本ドキュメントの内容に関するお問い合わせはご遠慮ください。

前提条件

  • クラスター種別が「IDCFクラウド
  • 永続ボリュームを利用している場合
    • Container Storage Interfaceとして「IDCFクラウド」を利用
    • StorageClassとして cloudstack-xfscloudstack-ext4 を利用

IDCFクラウド コンテナでの制限事項

  • Veeam Kastenは、Kind: PersistentVolume のバックアップに Kind: VolumeSnapshot を使用しますが、ボリュームサイズが大きい場合、VolumeSnapshotの取得に時間がかかり、失敗とみなされる場合があります。
  • VolumeSnapshotの取得に失敗した場合、リトライ処理により複数回のVolumeSnapshotが作成されることがあります。基本的に自動削除されますが、残存していないかを確認し、必要に応じて削除してください。また、コンピュート側のスナップショットも残存する可能性があるため、必要に応じて削除してください。

事前準備

クラウドストレージの準備

Veeam Kastenを利用したクラスター間移行では、RKE1クラスターのバックアップを保存するためのクラウドストレージなどの外部ストレージが必要です。

ここでは、IDCFクラウドのクラウドストレージを利用する場合を想定します。

クラウドストレージの有効化・バケット作成

クラウドストレージ ご利用ガイド - クラウドストレージ申し込みからオブジェクトアップロードまでの流れ」の手順をご確認いただき、クラウドストレージの有効化およびVeeam Kastenがバックアップを保存するためのバケットの作成を行います。

Veeam Kastenの設定時に、作成したバケット名およびバケットのロケーション名が必要となります。

GCPプロジェクトIDの確認

IDCFクラウドコンソールの アカウント設定 > 連携アカウント にアクセスし、GCPプロジェクトIDを確認します。

GCPプロジェクトIDは、Veeam Kastenの設定時に必要となります。

GCPサービスアカウントの準備

Veeam Kastenを利用したクラウドストレージへのアクセスには、「ストレージ管理者」の役割を設定したGCPサービスアカウントが必要となります。

FAQ - サービスアカウントの使用方法について教えてください。」 の手順をご確認いただき、サービスアカウントを作成します。

作成時にJSON形式のキーファイルがダウンロードされます。このキーファイルはVeeam Kastenの設定時に利用します。

VolumeSnapshotClass の設定

Veaam Kastenは Kind: VolumeSnapshot を利用します。

事前に、VolumeSnapshotClassのAnnotaionに k10.kasten.io/is-snapshot-class: 'true' を設定する必要があります。

IDCFクラウドコンテナコンソールを利用してVolumeSnapshotClassのAnnotationを設定する

コンテナコンソールの画面右上にある検索アイコン(リソースの検索)をクリックします。

表示された検索フィールドに「VolumeSnapshotClasses」と入力し、検索結果から「VolumeSnapshotClasses」を選択します。

名前が cloudstack-snapshotter の行にある右側のメニューから、「YAML を編集 (Edit YAML)」を選択し、以下のようにAnnotationを追加します。

# cloudstack-snapshotter の抜粋
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
driver: volume.cloudstack.idcfcloud.com
deletionPolicy: Delete
  annotations:
    k10.kasten.io/is-snapshot-class: 'true'

Veeam Kastenのインストール

IDCFクラウドコンテナコンソールからVeeam Kastenをインストールする手順を説明します。

レポジトリの設定

Veeam Kastenは、Helm Chart Repository を提供しています。

Helm Chart Repository を登録することで、IDCFクラウドコンテナコンソールからVeeam Kastenをインストールできます。

IDCFクラウドコンテナコンソールの アプリ (Apps) > Repository からレポジトリを設定します。 以下の内容を入力し、作成します。

  • 名前(Name): kasten
  • Target
    • Helmによって生成されたインデックスへのhttp(s) URL (http(s) URL to an index generated by Helm) : チェックする
    • インデックスURL (index URL): https://charts.kasten.io/
    • 認証 (Authentication): なし (None)

Veeam Kasten Chartのインストール

Helm Chart Repository の登録後、IDCFクラウドコンテナコンソールの アプリ (Apps) > Chart からVeeam Kastenのインストールが可能になります。

Chart一覧から「k10」を選択します。

インストール(Install)」を選択し、次に進みます。

インストール: ステップ1(Install: Step1)」では、以下の内容を入力し「次へ(Next)」を選択します。

  • Namespace
    • 新しいNamespaceを作成: kasten-io
  • 名前(Name): k10

インストール: ステップ2(Install: Step2)」では、インストールの詳細設定が可能です。基本的には変更せずに「インストール(Install)」を実行して問題ありません。

詳細な設定を行いたい場合は、Veeam Kastenのドキュメント「Installing Veeam Kasten - Complete List of Veeam Kasten Helm Options」をご確認ください。

インストール(Install)」を選択することで、インストールが開始します。

コンソール上で SUCCESS と表示され、アプリ (Apps) > Installed App から k10 がインストールされていることを確認できます。

Veeam Kastenで利用される用語

その他の用語については、Veeam Kastenのドキュメントをご確認ください。

用語
Snapshot- バックアップに相当します。
- Snapshotの基本的な単位はNamespaceになります。(Filter ResourcesでInclude/Excludeを設定可能。)
- Namespaceに属さないリソースはCluster Resource(Non Namespaced Resource)として扱われます。
Export- Snapshotしたデータを外部ストレージ(クラウドストレージ等)に書き出すことです。
Import- ExportされたデータをVeeam Kastenに取り込むことです。
- RKE1クラスターでExportし、RKE2クラスターでImportを行います。
Restore- Snapshotを復元します。

Veeam KastenのUIへアクセスする

Veeam Kastenには、WebベースのUIが提供されています。以下の手順でアクセスしてください。

IDCFクラウドコンテナコンソールの画面右上にある「Project/Namespace」選択メニューを開き、表示されたリストから「kasten-io」を選択する。

サービスディスカバリ(Service Discovery) > Service を開き、一覧から「名前(Name): gateway」の「Target: http」をクリックします。

別ウィンドウが開きます。URLの末尾に「/k10/」を追加してアクセスしてください。

Veeam Kastenの初期設定

KASTEN END USER LICENSE AGREEMENT

Veeam KastenのUIへ初めてアクセスすると、利用許諾契約(KASTEN END USER LICENSE AGREEMENT)への同意画面が表示されます。 内容をご確認の上、「Company」「E-Mail」を入力し、「Accept」をクリックしてください。

Location Profileの設定

Location Profileから、外部ストレージの定義を行います。クラスター間の移行にはLocation Profileの設定が必須です。

左側のメニュー Profiles > Location から「Create New Profile」をクリックして、以下の設定を行ってください。設定内容は 「事前準備 - クラウドストレージの準備」を参照してください。ここでは、IDCFクラウドのクラウドストレージを利用する場合を想定しています。

Location Profile Name および Storage Provider を設定し、「Next」をクリックします。

  • Location Profile Name: idcfcloud
  • Storage Provider: Google Cloud Storage

クラウドストレージの情報を設定し、「Next」をクリックします。確認画面が表示されるので、設定内容を確認の上「Submit」をクリックします。

  • Storage Provider: Google Cloud Storage
    • GCP Project ID: 事前準備で確認したGCPプロジェクトID
    • GCP Service Key: 事前準備で取得したJSON形式のキーファイルの内容
    • Location: 事前準備でバケット作成時に指定したロケーション (事前作成したバケットと同じロケーションを選択する必要があります。)
    • Bucket: 事前準備で作成したバケット名

Snapshotの設定

Snapshotを実行する方法は複数ありますが、ここではオンデマンドで実行可能な Policy を作成します。

左側のメニューから「Policies」を選択し、「Create New Policy」をクリックして、以下の設定を行ってください。

  • Name: 任意の名前
  • Action: Snapshot
  • Backup Frequency: On Demand
  • Enable Backups via Snapshot Exports: オン
    • Snapshot取得後にImportを自動的に実行します。
  • Export Location Profile: idcfcloud
  • Select Applications
    • 以下が選択可能です。基本的には、By Name を選択してアプリケーションが利用しているNamespaceを直接指定することをおすすめします。
      • By Name: Snapshotを取得するNamespaceを直接指定します。
        • 必ずアプリケーションが利用しているNamespaceを選択してください。システムが利用しているNamespaceを別クラスターにRestoreしてしまうとシステムが壊れる可能性があります。
      • By Labels: LabelからNamespaceを指定する。
        • ワークロードのLabelを指定した場合、Labelにマッチするワークロードが属するNamespaceが選択されます(LabelにマッチするワークロードのみがSnapshot対象になるわけではありません)。
      • None: Cluster-Scoped REesouces(Namespaceに属さないResource)のみを対象にSnapshotを取得する場合に選択します。
  • Select Application Resources: All Resources
    • All Resources ではNamespace内の全リソースをSnapshot対象にします。
    • Snapshotの最小単位はNamespaceになりますが、「Filter Resources」でフィルタリングが可能です。
  • Snapshot Cluster-Scoped Resources: All Cluster-Scoped Resources
    • `Cluster-Scoped Resources(Namespaceに属さないResource)も同時にSnapshotを取得します。

Addvanced Settingsは基本的に設定不要です。必要に応じてVeeam Kastenのドキュメントをご確認ください。

リソースのフィルタリング

前述の設定例では、Select Application Resources: All Resources を選択し、Namespace内の全てのリソースをSnapshotの対象としています。しかし、「はじめに - IDCFクラウド コンテナでの制限事項」に記載のとおり、大きなボリュームを持つリソースの場合にSnapshotが失敗する可能性があります。

その場合、Select Application ResourcesFilter Resourcesを設定し、Kind: PersistentVolumeClaim を除外してください。手順は以下の通りです。

  • Select Applications Resources: Filter Resources
    • Exclude Filters: Add Filters から除外するリソースを指定します。
      • Resource: persistentVolumeClaims
      • Name: 除外するPersistentVolumeClaimの名前を指定

Snapshotの実行

以下の手順で、作成したオンデマンド実行可能なSnapshotのPolicyを実行します。

左側のメニューから「Policies」を選択し、作成したPolicyを確認します。

実行したいPolicyの「run once」ボタンをクリックします。

確認画面が表示されるので、「Yes, Continue」をクリックすると、即時実行されます。

実行の経過/結果は、左側のメニューにある「Dashboard」の「Actions」から確認できます。

Import/Restoreの設定

ImportとRestoreを実行する方法は複数ありますが、ここではオンデマンドで実行可能な Policy を作成します。

左側のメニューから「Policies」を選択し、「Create New Policy」をクリックして、以下の設定を行ってください。

  • Name: 任意の名前
  • Action: Import
  • Restore After Import: オン (この設定をオンにすることでImport後にRestoreがそのまま実行されます。)
    • Data-Only Restore: チェックしない
    • Don’t wait for workloads to be ready: チェック
      • ワークロードが立ち上がるのを待たずにRestoreが進むようになります。
    • Restore cluster-scoped resources: チェック
      • Cluster-Scoped Resources(Namespaceに属さないResource) もRestoreします。
    • Apply transforms to restored resources: オフ
    • Select Application Resources: All Resources
    • Pre and Post-Restore Action Hooks: すべてチェックしない

  • Import Frequency: On Demand
  • Config Data for Import: RKE1で作成したSnapshotのImport用コンフィグデータ (確認方法は後述します。)
  • Profile for Import: idcfcloud
  • Advanced Settings: すべてオフ

Import用コンフィグデータ確認方法

Import/Restore用Policy設定時に必要となるコンフィグデータの確認方法を説明します。

RKE1クラスターのVeeam KastenのUIにアクセスします。左側のメニューから「Policies」を選択し、Snapshotを取得したPolicyの「Show import details…」をクリックします。

Copy to Clipboard」をクリックし、コピーされたデータを Config Data for Import に指定します。

Import/Restoreの実行

以下の手順で、オンデマンド実行可能なImport/RestoreのPolicyを実行します。

左側のメニューから「Policies」を選択し、作成したPolicyを確認します。

実行したいPolicyの「run once」ボタンをクリックします。

確認画面が表示されるので、「Yes, Continue」をクリックすると、即時実行されます。

実行の経過/結果は、左側のメニューにある「Dashboard」の「Actions」から確認できます。