機械翻訳について

7 Kubernetesクラスタのバックアップおよびリストア

重要:

このドキュメントで説明されているソフトウェアは、Extended SupportまたはSustaining Supportにあります。 詳細は、「Oracleオープン・ソース・サポート・ポリシー」を参照してください。

このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお勧めします。

この章では、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

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

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

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

これらのリストアステップは、計画された障害時リカバリ・シナリオの一環として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/の最新のタイムスタンプ・フォルダのファイルは、クラスタを以前の状態にリストアするために使用されます。

    前提条件を満たすために、コントロール・プレーン・ノードに追加の設定ステップを実行するようにプラットフォーム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