4.7. プロジェクトのバックアップ
関連するすべてのデータのバックアップの作成には、すべての重要な情報をエクスポートし、新規プロジェクトに復元することが関係します。
oc get all
コマンドは特定のプロジェクトリソースのみを返すため、以下の手順のように PVC およびシークレットを含む他のリソースを個別にバックアップする必要があります。
手順
バックアップするプロジェクトデータを一覧表示します。
oc get all
$ oc get all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトオブジェクトを
project.yaml
ファイルにエクスポートします。oc get -o yaml --export all > project.yaml
$ oc get -o yaml --export all > project.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールバインディング、シークレット、サービスアカウント、および永続ボリューム要求 (PVC) など、プロジェクト内の他のオブジェクトをエクスポートします。
以下のコマンドを使用すると、プロジェクト内の namespace のオブジェクトをすべてエクスポートできます。
for object in $(oc api-resources --namespaced=true -o name) do oc get -o yaml --export $object > $object.yaml done
$ for object in $(oc api-resources --namespaced=true -o name) do oc get -o yaml --export $object > $object.yaml done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一部のリソースはエクスポートできず、
aMethodNotAllowed
エラーが表示されます。一部のエクスポートされたオブジェクトはプロジェクト内の特定のメタデータまたは固有の ID への参照に依存する場合があります。これは、再作成されるオブジェクトのユーザービリティーにおける制限になります。
imagestreams
の使用時に、deploymentconfig
のimage
パラメーターは、復元される環境に存在しない内部レジストリー内のイメージの特定のsha
チェックサムをポイントする場合があります。たとえば、サンプル "ruby-ex" をoc new-app centos/ruby-22-centos7~https://github.com/sclorg/ruby-ex.git
として実行すると、イメージをホストするための内部レジストリーを使用するimagestream
ruby-ex
が作成されます。oc get dc ruby-ex -o jsonpath="{.spec.template.spec.containers[].image}"
$ oc get dc ruby-ex -o jsonpath="{.spec.template.spec.containers[].image}" 10.111.255.221:5000/myproject/ruby-ex@sha256:880c720b23c8d15a53b01db52f7abdcbb2280e03f686a5c8edfef1a2a7b21cee
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get --export
でのエクスポートと同じ方法で、deploymentconfig
をインポートすると、イメージが存在しない場合には失敗します。