5.2.2. マスターホストのバックアップの作成
バックアッププロセスは、システム更新やアップグレードまたはその他の大きな変更を含む変更を OpenShift Container Platform インフラストラクチャーに加える前に実行します。データのバックアップは、障害発生時に最新データが利用可能になるように定期的に実行します。
OpenShift Container Platform ファイル
マスターインスタンスは API、コントローラーなどの重要なサービスを実行します。/etc/origin/master ディレクトリーには、以下のような重要なファイルが数多く格納されています。
- 設定、API コントローラー、サービスなど
- インストールで生成される証明書
- すべてのクラウドプロバイダー関連の設定
-
キーおよびその他の認証ファイル (htpasswd を使用する場合は
htpasswdなど) - その他
ログレベルの引き上げやプロキシーの使用などのカスタマイズを OpenShift Container Platform サービスに対して行うことができます。設定ファイルは /etc/sysconfig ディレクトリーに保存されます。
マスターはノードでもあるため、/etc/origin ディレクトリー全体のバックアップを作成します。
手順
各マスターノードで以下の手順を実行する必要があります。
- ここでは、Pod 定義のバックアップを作成します。
マスターホストの設定ファイルのバックアップを作成します。
MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d) sudo mkdir -p ${MYBACKUPDIR}/etc/sysconfig sudo cp -aR /etc/origin ${MYBACKUPDIR}/etc sudo cp -aR /etc/sysconfig/ ${MYBACKUPDIR}/etc/sysconfig/$ MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d) $ sudo mkdir -p ${MYBACKUPDIR}/etc/sysconfig $ sudo cp -aR /etc/origin ${MYBACKUPDIR}/etc $ sudo cp -aR /etc/sysconfig/ ${MYBACKUPDIR}/etc/sysconfig/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記マスター設定ファイルは /etc/origin/master/master-config.yaml です。
警告/etc/origin/master/ca.serial.txtファイルは Ansible ホストインベントリーに一覧表示される最初のマスターでのみ生成されます。最初のマスターホストの使用を終了する場合は、このプロセスの実行前に/etc/origin/master/ca.serial.txtファイルを残りのマスターホストにコピーします。重要複数のマスターを実行する OpenShift Container Platform 3.11 クラスターでは、マスターノードのいずれかの
/etc/origin/master、/etc/etcd/caおよび/etc/etcd/generated_certsに追加の CA 証明書が含まれます。これらはアプリケーションノードおよび etcd ノードのスケールアップ操作に必要であり、元のマスターが完全に利用できなくなった場合には、別のマスターノードに復元する必要があります。これらのディレクトリーは、ここで説明するバックアップ手順にデフォルトで含まれています。バックアップの計画時に考慮する必要のある他の重要なファイルには以下が含まれます。
Expand ファイル
説明
/etc/cni/*コンテナーネットワークインターフェイスの設定 (使用される場合)
/etc/sysconfig/iptablesiptablesルールが保存される場所/etc/sysconfig/docker-storage-setupcontainer-storage-setupコマンドの入力ファイル/etc/sysconfig/dockerdocker設定ファイル/etc/sysconfig/docker-networkdockerネットワーク設定 (例: MTU)/etc/sysconfig/docker-storagedockerストレージ設定 (container-storage-setupで生成される)/etc/dnsmasq.confdnsmasqの主要な設定ファイル/etc/dnsmasq.d/*異なる
dnsmasq設定ファイル/etc/sysconfig/flanneldflannel設定ファイル (使用される場合)/etc/pki/ca-trust/source/anchors/システムに追加される証明書 (例: 外部レジストリー用)
上記のファイルのバックアップを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パッケージが間違って削除されてしまう場合や、
rpmパッケージに含まれるファイルを復元する必要がある場合に、システムにインストールされているrhelパッケージの一覧があると便利です。注記コンテンツビューやファクトストアなどの Red Hat Satellite 機能を使用する場合は、見つからないパッケージやシステムにインストールされているパッケージの履歴データを再インストールする適切なメカニズムを指定します。
システムにインストールされている現在の
rhelパッケージの一覧を作成するには、以下を実行します。MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d) sudo mkdir -p ${MYBACKUPDIR} rpm -qa | sort | sudo tee $MYBACKUPDIR/packages.txt$ MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d) $ sudo mkdir -p ${MYBACKUPDIR} $ rpm -qa | sort | sudo tee $MYBACKUPDIR/packages.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow これまでの手順を実行している場合、以下のファイルがバックアップディレクトリーに置かれます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要な場合は、ファイルを圧縮してスペースを節約することができます。
MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d) sudo tar -zcvf /backup/$(hostname)-$(date +%Y%m%d).tar.gz $MYBACKUPDIR sudo rm -Rf ${MYBACKUPDIR}$ MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d) $ sudo tar -zcvf /backup/$(hostname)-$(date +%Y%m%d).tar.gz $MYBACKUPDIR $ sudo rm -Rf ${MYBACKUPDIR}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
これらのファイルのいずれかをゼロから作成するには、openshift-ansible-contrib リポジトリーに含まれる backup_master_node.sh スクリプトを使用します。このスクリプトは前述の手順を実行し、スクリプトが実行され、前述のすべてのファイルがコピーされるホスト上のディレクトリーを作成します。
openshift-ansible-contrib スクリプトは Red Hat ではサポートされていませんが、リファレンスアーキテクチャーチームはコードが定義通りに動作し、安全であることを確認するテストを実施しています。
このスクリプトは、以下のコマンドを使用してすべてのマスターホストで実行することができます。
mkdir ~/git cd ~/git git clone https://github.com/openshift/openshift-ansible-contrib.git cd openshift-ansible-contrib/reference-architecture/day2ops/scripts ./backup_master_node.sh -h
$ mkdir ~/git
$ cd ~/git
$ git clone https://github.com/openshift/openshift-ansible-contrib.git
$ cd openshift-ansible-contrib/reference-architecture/day2ops/scripts
$ ./backup_master_node.sh -h