災害の後で Kubernetes クラスターの状態を復元する

適用対象: AKS on Azure Stack HCI 22H2、Windows Server 上の AKS

AKS on Azure Stack HCI または Windows Server では、管理クラスターはデプロイごとに 1 つのスタンドアロン仮想マシン (VM) としてデプロイされるため、単一障害点になります。 管理クラスターの停止は、ワークロード クラスターで実行されているアプリケーションに影響を与えないことに注意してください。 管理クラスター VM が失敗した場合、ワークロード クラスター (およびワークロード) は引き続き実行されますが、2 日目の操作は実行できません。 たとえば、VM が復元されるまで、新しいワークロード クラスターを作成したり、ノード プールを作成またはスケーリングしたり、Kubernetes バージョンをアップグレードしたりすることはできません。

管理クラスターは、Windows フェールオーバー クラスタリングで追跡される VM です。 また、ホスト レベルの中断に対する回復性もあります。 つまり、ホスト マシンの障害時に、Windows フェールオーバー クラスタリングによって正常なホスト マシン上の VM が再起動されます。 この記事では、次のタスクを実行する方法に関するガイダンスを提供します。

  • 新しいハードウェアで AKS の状態を復元します (新しいサイトである可能性があります)。
  • 管理クラスターの破損から復旧します。

これらのシナリオのいずれかで、管理クラスターとすべてのワークロード クラスターを再作成する必要があります。

新しいハードウェアまたは新しいサイトで AKS の状態を復元する

Kubernetes クラスターの状態を回復するには、新しいハードウェアまたは新しい場所で管理クラスターを使用できる必要があります。

  • AKS では、Velero を使用した Kubernetes クラスター Azure Blob Storage と MinIO へのバックアップがサポートされています。 Microsoft では、プライマリ ストレージ リージョンに 3 つの冗長なデータ コピーが提供されるため、Azure Storage をバックアップすることをお勧めします。
  • 使用可能なバックアップが復旧ポイントの目標を満たしていることを確認するには、cron ジョブでバックアップを実行することを検討してください。

前提条件

管理クラスターと空のワークロード クラスターを作成して、障害が発生する前にコールド スタンバイを準備します。 バックアップから復元する Kubernetes クラスターごとに空のワークロード クラスターが必要です。 以下の前提条件が必要です。

管理クラスターの破損から回復する

管理クラスターの破損から復旧するには、AKS をアンインストールし、管理クラスターとすべてのワークロード クラスターを再インストールする必要があります。 ワークロード クラスターは、Velero バックアップから空のワークロード クラスターに復元できます。

以下の前提条件が必要です。

  • ワークロード クラスターのバックアップ: Velero を使用してワークロード クラスターをバックアップ、復元
  • 以前のネットワーク、ストレージ、およびクラスター設定の AKS 構成のバックアップ。 クラスター設定には、コントロール プレーン、ロード バランサー、ワーカー ノード VM のサイズと数が含まれます。 たとえば、古いクラスターに 3 つの Standard_A2_V2 コントロール プレーン VM がある場合は、新しい環境に 3 つのコントロール プレーン VM を作成する必要があります。

管理クラスターの破損から復旧するには、次の手順を実行します。

よく寄せられる質問

管理クラスターに組み込まれている回復性

各 AKS デプロイには、単一のスタンドアロン VM である管理クラスターが含まれています。 回復性と高可用性のために、中断が発生した場合、AKS は Windows フェールオーバー クラスタリングに依存して VM を復旧します。

管理クラスターの停止は、ワークロード クラスターで実行されているアプリケーションには影響しません。 管理クラスター VM がダウンすると、VM が復旧されるまで、新しいワークロード クラスターの作成、ノード プールの作成またはスケーリング、Kubernetes バージョンのアップグレードなどの AKS Day 2 操作を実行する機能に影響します。 管理クラスターの障害から復旧できない場合は、Microsoft サポートに連絡することをお勧めします。

Velero バックアップには何が含まれていますか?

Filename コンテンツの説明
*-csi-volumesnapshotclasses.json.gz csiを含むファイルは永続ボリューム スナップショットです。
*-csi-volumesnapshotcontents.json.gz csiを含むファイルは永続ボリューム スナップショットです。
*-csi-volumesnapshots.json.gz csiを含むファイルは永続ボリューム スナップショットです。
*-logs.gz バックアップ操作のログ出力。 実行中と同じデータ: velero backup log <backupname>
*-podvolumebackups.json.gz ポッドと永続ボリュームに関するメタデータ。
*-resource-list.json.gz このファイルには、バックアップに含まれるリソースが一覧表示されます。
*-volumesnapshots.json.gz ポッドと永続ボリュームに関するメタデータ。
*.tar.gz メタデータ: 名前空間、ポッド レプリカの数、メモリ、CPU。 戻り値と同じデータ: kubectl get deployment

Velero バックアップに含まれないものは何ですか?

Velero バックアップには、次の項目は含まれません。

  • 管理クラスター (AKS) の構成
  • コントロール プレーン VM (API サーバー) メタデータ
  • ロード バランサー (HA プロキシ) メタデータ
  • ネットワーク設定
  • ストレージの設定

障害が発生する前に AKS 構成をバックアップ操作方法

管理クラスター構成をバックアップするには、PowerShell ウィンドウを開き、次のコマンドを実行します。

Get-AksHciConfig | ConvertTo-Json 

ワークロード クラスターの構成が障害発生前と同じであることを確認操作方法。

ワークロード クラスター構成をバックアップするには、PowerShell ウィンドウを開き、次のコマンドを実行します。

Get-AksHciCluster -name <cluster name> | ConvertTo-Json 

次のステップ