4.7. プロジェクトのバックアップ
関連するすべてのデータのバックアップの作成には、すべての重要な情報をエクスポートし、新規プロジェクトに復元することが関係します。
oc get all
コマンドは特定のプロジェクトリソースのみを返すため、以下の手順のように PVC およびシークレットを含む他のリソースを個別にバックアップする必要があります。
手順
バックアップするプロジェクトデータを一覧表示します。
$ oc get all
出力例
NAME TYPE FROM LATEST bc/ruby-ex Source Git 1 NAME TYPE FROM STATUS STARTED DURATION builds/ruby-ex-1 Source Git@c457001 Complete 2 minutes ago 35s NAME DOCKER REPO TAGS UPDATED is/guestbook 10.111.255.221:5000/myproject/guestbook latest 2 minutes ago is/hello-openshift 10.111.255.221:5000/myproject/hello-openshift latest 2 minutes ago is/ruby-22-centos7 10.111.255.221:5000/myproject/ruby-22-centos7 latest 2 minutes ago is/ruby-ex 10.111.255.221:5000/myproject/ruby-ex latest 2 minutes ago NAME REVISION DESIRED CURRENT TRIGGERED BY dc/guestbook 1 1 1 config,image(guestbook:latest) dc/hello-openshift 1 1 1 config,image(hello-openshift:latest) dc/ruby-ex 1 1 1 config,image(ruby-ex:latest) NAME DESIRED CURRENT READY AGE rc/guestbook-1 1 1 1 2m rc/hello-openshift-1 1 1 1 2m rc/ruby-ex-1 1 1 1 2m NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc/guestbook 10.111.105.84 <none> 3000/TCP 2m svc/hello-openshift 10.111.230.24 <none> 8080/TCP,8888/TCP 2m svc/ruby-ex 10.111.232.117 <none> 8080/TCP 2m NAME READY STATUS RESTARTS AGE po/guestbook-1-c010g 1/1 Running 0 2m po/hello-openshift-1-4zw2q 1/1 Running 0 2m po/ruby-ex-1-build 0/1 Completed 0 2m po/ruby-ex-1-rxc74 1/1 Running 0 2m
プロジェクトオブジェクトを
project.yaml
ファイルにエクスポートします。$ oc get -o yaml --export all > project.yaml
ロールバインディング、シークレット、サービスアカウント、および永続ボリューム要求 (PVC) など、プロジェクト内の他のオブジェクトをエクスポートします。
以下のコマンドを使用すると、プロジェクト内の namespace のオブジェクトをすべてエクスポートできます。
$ for object in $(oc api-resources --namespaced=true -o name) do oc get -o yaml --export $object > $object.yaml done
一部のリソースはエクスポートできず、
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}" 10.111.255.221:5000/myproject/ruby-ex@sha256:880c720b23c8d15a53b01db52f7abdcbb2280e03f686a5c8edfef1a2a7b21cee
oc get --export
でのエクスポートと同じ方法で、deploymentconfig
をインポートすると、イメージが存在しない場合には失敗します。