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 }'$ oc get dc/jenkins -o jsonpath='{ .spec.template.spec.containers[?(@.name=="jenkins")].volumeMounts[?(@.name=="jenkins-data")].mountPath }' /var/lib/jenkinsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 現在実行中の Pod の名前を取得します。
oc get pod --selector=deploymentconfig=jenkins -o jsonpath='{ .metadata.name }'$ oc get pod --selector=deploymentconfig=jenkins -o jsonpath='{ .metadata.name }' jenkins-1-37nuxCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc rsyncコマンドを使用してアプリケーションデータをコピーします。oc rsync jenkins-1-37nux:/var/lib/jenkins /tmp/jenkins-backup/
$ oc rsync jenkins-1-37nux:/var/lib/jenkins /tmp/jenkins-backup/Copy to Clipboard Copied! Toggle word wrap Toggle overflow