機械翻訳について

このドキュメントで説明されているソフトウェアは、サポートされなくなったか、拡張サポートされています。
Oracleでは、現在サポートされているリリースにアップグレードすることをお勧めします。

第7章 Kubernetesクラスタのバックアップとリストア

この章では、Oracle Cloud Native EnvironmentでKubernetesクラスタをバックアップおよびリストアする方法について説明します。

7.1 コントロール・プレーン・ノードのバックアップ

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

このディレクトリとディレクトリ内のファイルは、次のように、その他のものと同様に操作できます。

sudo ls /var/olcne/backups/myenvironment/kubernetes/mycluster/20191007040013
control1.example.com.tar control2.example.com.tar control3.example.com.tar etcd.tar

7.2 コントロール・プレーン・ノードのリストア

これらのリストアステップは、計画された障害時リカバリ・シナリオの一環としてKubernetesクラスタを再構築する必要がある場合に使用することを意図しています。 完全なクラスタ障害が発生した場合を除き、レプリケーションとフェイルオーバーによる自己回復が可能な高可用性クラスタでは、コントロール・プレーン・ノードを個別に手動でリカバリする必要はありません。

コントロール・プレーン・ノードをリストアするには、既存のOracle Cloud Native Environmentを持ち、Kubernetesモジュールをデプロイしている必要があります。 存在していない環境はリストアできません。

コントロール・プレーン・ノードをリストアするには:
  1. 先に進む前に、コントロール・プレーンのノードでPlatform Agentが適切に実行されていることを確認します。

    systemctl status olcne-agent.service
  2. オペレータ・ノードで、olcnectl module restoreコマンドを使用して、クラスタ内のコントロール・プレーン・ノードの主要なコンテナおよびマニフェストをリストアします。 たとえば:

    olcnectl module restore \
    --environment-name myenvironment \
    --name mycluster

    /var/olcne/backups/environment-name/kubernetes/module-name/にある最新のタイムスタンプが付いたファイルが使用されて、クラスタが以前の状態にリストアされます。

    前提要件を満たすために、Platform CLIによりコントロール・プレーン・ノードに対する追加の設定ステップを実行するように求められることがあります。 その場合は、その指示に従って、olcnectl module restoreコマンドを再実行してください。

  3. コントロール・プレーン・ノードでkubectlコマンドを使用して、リストア操作が成功したことを確認できます。 たとえば:

    kubectl get nodes
    NAME STATUS ROLES AGE VERSION control1.example.com Ready master 9m27s v1.21.x+x.x.x.el8 worker1.example.com Ready <none> 8m53s v1.21.x+x.x.x.el8 kubectl get pods -n kube-system
    NAME READY STATUS RESTARTS AGE coredns-5bc65d7f4b-qzfcc 1/1 Running 0 9m coredns-5bc65d7f4b-z64f2 1/1 Running 0 9m etcd-control1.example.com 1/1 Running 0 9m kube-apiserver-control1.example.com 1/1 Running 0 9m kube-controller-control1.example.com 1/1 Running 0 9m kube-flannel-ds-2sjbx 1/1 Running 0 9m kube-flannel-ds-njg9r 1/1 Running 0 9m kube-proxy-m2rt2 1/1 Running 0 9m kube-proxy-tbkxd 1/1 Running 0 9m kube-scheduler-control1.example.com 1/1 Running 0 9m kubernetes-dashboard-7646bf6898-d6x2m 1/1 Running 0 9m