4.5. アプリケーションデータのバックアップ
rsync
がコンテナーイメージ内にインストールされていることを前提とすると、多くの場合、アプリケーションデータは oc rsync
コマンドを使用してバックアップできます。Red Hat rhel7 ベースイメージには rsync
が含まれます。したがって、rhel7 をベースとするすべてのイメージにはこれが含まれることになります。Troubleshooting and Debugging CLI Operations - rsync を参照してください。
これは、アプリケーションデータの 汎用的な バックアップについての説明であり、データベースシステムの特殊なエクスポート/インポートなどのアプリケーション固有のバックアップ手順については考慮に入れられていません。
使用する永続ボリュームのタイプ (Cinder、NFS、Gluster など) によっては、他のバックアップ手段を使用できる場合もあります。
バックアップのパスも アプリケーションに固有 のものです。deploymentconfig
でボリュームの mountPath
を参照してバックアップするパスを判別することができます。
この種のアプリケーションデータのバックアップは、アプリケーション Pod が実行中の場合にのみ実行できます。
手順
Jenkins デプロイメントのアプリケーションデータのバックアップ例
アプリケーションデータ
mountPath
をdeploymentconfig
から取得します。$ oc get dc/jenkins -o jsonpath='{ .spec.template.spec.containers[?(@.name=="jenkins")].volumeMounts[?(@.name=="jenkins-data")].mountPath }' /var/lib/jenkins
現在実行中の Pod の名前を取得します。
$ oc get pod --selector=deploymentconfig=jenkins -o jsonpath='{ .metadata.name }' jenkins-1-37nux
oc rsync
コマンドを使用してアプリケーションデータをコピーします。$ oc rsync jenkins-1-37nux:/var/lib/jenkins /tmp/jenkins-backup/