7 Kubernetesクラスタのバックアップおよびリストア
この章では、Oracle Cloud Native EnvironmentでKubernetesクラスタをバックアップおよびリストアする方法について説明します。
コントロール・プレーン・ノードのバックアップ
コントロール・プレーン・ノードの障害からKubernetesクラスタを保護するためのバックアップ計画の採用は、特にコントロール・プレーン・ノードが1つのみのクラスタでは重要です。 また、多くのコントロール・プレーン・ノードを持つ高可用性クラスタでは、レプリケーションおよびフェイルオーバー機能によって提供される自己回復性を超えた場合にフォールバック計画も必要です。
障害時リカバリ計画の一環としてバックアップを実行する場合は、クラスタを停止する必要はありません。 オペレータ・ノードで、olcnectl module backup
コマンドを使用して、クラスタ内のすべてのコントロール・プレーン・ノードのキー・コンテナおよびマニフェストをバックアップします。
重要:
Kubernetesコントロール・プレーン・ノードに必要な主要なコンテナのみがバックアップされます。 アプリケーション・コンテナはバックアップされません。
たとえば:
olcnectl module backup \
--environment-name myenvironment \
--name mycluster
バックアップ・ファイルは、オペレータ・ノードの/var/olcne/backups
ディレクトリに格納されます。 このファイルは、次のパターンに従ったタイムスタンプ付きのフォルダに保存されます。
/var/olcne/backups/environment-name/kubernetes/module-name/timestamp
コントロール・プレーン・ノードのリストア
これらのリストア・ステップは、計画された障害時リカバリ・シナリオの一部としてKubernetesクラスタを再構築する必要がある場合に使用します。 クラスタ全体の障害が発生しないかぎり、レプリケーションおよびフェイルオーバーで自己修復できるため、高可用性クラスタ内の個々のコントロール・プレーン・ノードを手動でリカバリする必要はありません。
コントロール・プレーン・ノードをリストアするには、既存のOracle Cloud Native Environmentがあり、Kubernetesモジュールがデプロイされている必要があります。 存在しない環境にはリストアできません。
コントロール・プレーン・ノードをリストアするには:
-
続行する前に、コントロール・プレーン・ノードでPlatform Agentが適切に実行されていることを確認します:
systemctl status olcne-agent.service
-
オペレータ・ノードで、
olcnectl module restore
コマンドを使用して、クラスタ内のコントロール・プレーン・ノードのキー・コンテナおよびマニフェストをリストアします。 たとえば:olcnectl module restore \ --environment-name myenvironment \ --name mycluster
/var/olcne/backups/environment-name/kubernetes/module-name/
の最新のタイムスタンプ・フォルダのファイルは、クラスタを以前の状態にリストアするために使用されます。前提要件を満たすために、Platform CLIによってコントロール・プレーン・ノードに対する追加の設定ステップを実行するように求められることがあります。 任意の手順に従って、
olcnectl module restore
コマンドを再度実行します。 -
コントロール・プレーン・ノードで
kubectl
コマンドを使用して、リストア操作が成功したことを確認できます。 たとえば、ノードをリストするには、次を使用します:kubectl get nodes
また、
kube-system
ネームスペースで実行されているポッドをリストするには、次を使用します:kubectl get pods --namespace kube-system