この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

バックアップからクラスターを復元する

Rancherが起動したKubernetesクラスターのEtcdバックアップと復元は簡単に行えます。etcdデータベースのスナップショットは、etcdノード上にローカルで保存されるか、S3互換ターゲットに保存されます。S3を設定する利点は、すべてのetcdノードが失われた場合でも、スナップショットがリモートに保存され、クラスターを復元するために使用できることです。

Rancherは、定期スナップショットの設定を有効にすることを推奨していますが、一時スナップショットも簡単に取得できます。Rancherは保存されたスナップショットからの復元を許可します。

クラスターは以前のKubernetesバージョンおよびクラスター構成に復元することもできます。

利用可能なスナップショットの表示

クラスターのすべての利用可能なスナップショットのリストが表示されます。

  1. 左上隅で、*☰ > クラスター管理*をクリックします。

  2. *クラスター*ページで、スナップショットを表示したいクラスターに移動し、クラスターの名前をクリックします。

  3. Snapshots]タブをクリックします。リストされたスナップショットには、作成された日時のタイムスタンプが含まれています。

スナップショットからクラスターを復元する

Kubernetesクラスターが壊れた場合、スナップショットからクラスターを復元できます。

スナップショットは、etcd内のクラスターデータ、Kubernetesバージョン、および`cluster.yml.`のクラスター構成で構成されています。これらのコンポーネントにより、スナップショットからクラスターを復元する際に次のオプションを選択できます:

  • *etcdの内容のみを復元する:*この復元は、Rancherのv2.4.0以前のスナップショットへの復元に似ています。

  • *etcdとKubernetesバージョンを復元する:*このオプションは、Kubernetesのアップグレードがクラスターの失敗の原因であり、クラスター構成の変更を行っていない場合に使用するべきです。

  • *etcd、Kubernetesバージョン、およびクラスター構成を復元する:*このオプションは、アップグレード時にKubernetesのバージョンとクラスターの構成の両方を変更した場合に使用する必要があります。

以前のKubernetesバージョンにロールバックする場合、アップグレード戦略オプションは無視されます。ワーカーノードは、古いKubernetesバージョンに戻される前に遮断またはドレインされないため、異常なクラスタをより迅速に正常な状態に復元できます。

前提条件:

S3からスナップショットを復元するには、クラスターをS3で定期的なスナップショットを取得するように構成する必要があります。

  1. 左上隅で、*☰ > クラスター管理*をクリックします。

  2. *クラスター*ページで、スナップショットを表示したいクラスターに移動し、クラスターの名前をクリックします。

  3. *スナップショット*タブをクリックして、保存されたスナップショットのリストを表示します。

  4. 復元したいスナップショットに移動し、*⋮ > 復元*をクリックします。

  5. *復元タイプ*を選択します。

  6. *復元*をクリックします。

*結果:*クラスターは`updating`状態に入り、スナップショットから`etcd`ノードを復元するプロセスが開始されます。クラスターは`active`状態に戻ると復元されます。

コントロールプレーン/etcdが完全に利用できない場合のスナップショットからのクラスターの復元

災害復旧シナリオでは、ダウンストリームクラスター内のRancherによって管理されているコントロールプレーンとetcdノードがもはや利用できないか、機能していない可能性があります。クラスターは、コントロールプレーンとetcdノードを再度追加し、その後、利用可能なスナップショットから復元することで再構築できます。

完全なクラスター障害が発生した場合、復元のために「新しい」etcdノードを追加する前に、クラスターからすべてのetcdノード/マシンを削除する必要があります。

もしローカルスナップショットを使用している場合、削除しようとしているetcdノードの`/var/lib/rancher/<k3s/rke2>/server/db/snapshots/フォルダーから、復元対象のスナップショットがバックアップされていることを必ず確認する必要があります。スナップショットを新しいノードの/var/lib/rancher/<k3s/rke2>/server/db/snapshots/`フォルダーへコピーできます。さらに、ローカルスナップショットを使用して新しいノードに復元する場合、現時点ではUIを介して復元することはできません。

  1. クラスターからすべてのetcdノードを削除します。

    1. 左上隅で、*☰ > クラスター管理*をクリックします。

    2. *クラスター*ページで、ノードを削除したいクラスターに移動します。

    3. マシン*タブで、削除したい各ノードの⋮ > 削除*をクリックします。最初は、ノードが`deleting`状態で停止しているのが見えますが、すべてのetcdノードの削除が進行すると、これらはまとめて削除されます。これは、Rancherがすべてのetcdノードを削除しているのを確認し、etcdの安全な削除ロジックを「ショートサーキット」するためです。

  2. すべてのetcdノードが削除された後、復元する予定の新しいetcdノードを追加します。新しいノードに`all`(etcd、controlplane、worker)の役割を割り当てます。

    • ノードが以前にクラスターに属していた場合は、最初にノードをクリーンアップします。

    • カスタムクラスターの場合は、*登録*タブに移動し、`etcd, controlplane, and worker`のボックスにチェックを入れます。次に、登録コマンドをコピーしてノードで実行します。

    • ノードドライバークラスターでは、新しいノードが自動的にプロビジョニングされます。

      この時点で、Rancherはetcdスナップショットからの復元が必要であることを示します。

  3. etcdスナップショットから復元します。

    etcdノードがクリーンノードであるため、手動で`/var/lib/rancher/<k3s/rke2>/server/db/snapshots/`パスを作成する必要があるかもしれません。

    • S3スナップショットの場合、UIを使用して復元します。

      1. *スナップショット*タブをクリックして、保存されたスナップショットのリストを表示します。

      2. 復元したいスナップショットに移動し、*⋮ > 復元*をクリックします。

      3. *復元タイプ*を選択します。

      4. *復元*をクリックします。

    • ローカルスナップショットの場合、UIを使用しての復元は*利用できません*。

      1. 右上隅の*⋮ > YAMLを編集*をクリックします。

      2. 以下の例のYAMLは、etcdの復元を構成するために`rkeConfig`の下に追加できます:

          ...
          rkeConfig:
            etcdSnapshotRestore:
              name: <string> # This field is required. Refers to the filename of the associated etcdsnapshot object.
          ...
  4. 復元が成功した後、etcdノードを希望の冗長性までスケールアップできます。