2.3. イメージのキャッシュ
2.3.1. 概要
OpenShift クラスターのプロビジョニングを迅速化し、ネットワークトラフィックを最小限に抑えるために、コンテナーイメージをホストにキャッシュすることができます。これらのイメージは、リクエストで明示的に、または minishift start
時に暗黙的にインポートできます。以下のセクションでは、イメージのキャッシュとその設定について詳しく説明します。
イメージがキャッシュされる形式は、CDK バージョン 3.3.0 で変更されています。3.3.0 より前のバージョンでは、イメージは tar ファイルとして保存されていました。3.3.0 の時点で、イメージは OCI イメージ形式 に保存されます。
CDK 3.3.0 より前のイメージのキャッシュを使用した場合は、キャッシュを再作成する必要があります。廃止された 3.3.0 前のイメージを削除する場合は、以下を実行してキャッシュをクリアできます。
$ minishift delete --clear-cache
2.3.2. 明示的なイメージキャッシュ
CDK は、イメージキャッシュの動作を制御するために、image
コマンドとサブコマンドを提供します。CDK 仮想マシンの Docker デーモンからイメージをエクスポートしてインポートするには、minishift image export
と minishift image import
を使用します。
2.3.2.1. 単一イメージのインポートおよびエクスポート
CDK 仮想マシンの実行後、イメージは Docker デーモンから明示的にエクスポートできます。
$ minishift image export <image-name-0> <image-name-1> ... Pulling image <image-name-0> .. OK Exporting <image-name-0>. OK Pulling image <image-name-1> .. OK Exporting <image-name-2>. OK
Docker デーモンでは利用できないイメージは、ホストにエクスポートされる前にプルされます。
以前キャッシュされたイメージをインポートするには、minishift image import
コマンドを使用します。
$ minishift image import <image-name-0> <image-name-1> ... Importing <image-name-0> . OK
2.3.2.2. キャッシュされたイメージの一覧表示
minishift image list
コマンドは、現在キャッシュされたイメージまたは CDK Docker デーモンで利用可能なイメージの一覧を表示します。
ホストで現在キャッシュされているイメージを表示するには、次のコマンドを実行します。
$ minishift image list registry.access.redhat.com/openshift3/ose-docker-registry:v3.11.232 registry.access.redhat.com/openshift3/ose-haproxy-router:v3.11.232 registry.access.redhat.com/openshift3/ose:v3.11.232
Docker デーモンで利用可能なイメージを表示するには、以下を実行します。
$ minishift image list --vm registry.access.redhat.com/openshift3/ose-deployer:v3.11.232 registry.access.redhat.com/openshift3/ose-docker-registry:v3.11.232 registry.access.redhat.com/openshift3/ose-haproxy-router:v3.11.232 registry.access.redhat.com/openshift3/ose-pod:v3.11.232 registry.access.redhat.com/openshift3/ose-web-console:v3.11.232 registry.access.redhat.com/openshift3/ose:v3.11.232
2.3.2.3. キャッシュされたイメージ名の永続化
image export
または image import
コマンドの一部としてイメージ名を明示的に入力しなくても、インポートおよびエクスポートを行うイメージ名の一覧を永続設定に保存できます。
minishift image cache-config view
を使用して、現在設定されているイメージの一覧を表示し、minishift image cache-config add
を使用してイメージを一覧に追加します。
$ minishift image cache-config view $ minishift image cache-config add alpine:latest busybox:latest $ minishift image cache-config view alpine:latest busybox:latest
一覧からイメージを削除するには、minishift image cache-config remove
を使用します。
$ minishift image cache-config remove alpine:latest $ minishift image cache-config view busybox:latest
イメージ名を永続設定に保存すると、引数なしで minishift image export
および minishift image import
を実行できます。
2.3.2.4. すべてのイメージのエクスポートおよびインポート
--all
フラグを使用して、すべてのイメージをエクスポートおよびインポートできます。export コマンドの場合は、現在 Docker デーモンで利用可能なすべてのイメージがホストにエクスポートされます。import コマンドの場合は、ローカル CDK キャッシュで利用可能なすべてのイメージが CDK 仮想マシンの Docker デーモンにインポートされることを意味します。
すべてのイメージのエクスポートおよびインポートには時間がかかる可能性があり、ローカルにキャッシュされたイメージにはかなりの量のディスク容量が使用される可能性があります。この機能は注意して使用することが推奨されます。
2.3.3. 暗黙的なイメージキャッシュ
CDK では、イメージのキャッシュがデフォルトで有効になっています。これは、minishift start
コマンドを初めて完了した後にバックグラウンドプロセスで発生します。イメージが $MINISHIFT_HOME/cache/image にキャッシュされると、連続した CDK 仮想マシンの作成により、これらのキャッシュされたイメージが使用されます。
この機能を無効にするには、minishift config set
コマンドを使用して、永続設定で image-caching
プロパティーを無効にする必要があります。
$ minishift config set image-caching false
暗黙的なイメージのキャッシュにより、cache-images
設定オプションごとに指定されるように、必要な OpenShift イメージをキャッシュされたイメージの一覧に透過的に追加します。「キャッシュされたイメージ名の永続化」を参照してください。
イメージのエクスポートのバックグラウンドプロセスを実行するたびに、ログファイルが $MINISHIFT_HOME/logs の下に生成されます。これは、エクスポートの進捗を検証するために使用できます。
image-caching
を true
に設定するか、minishift config unset
を使用して設定をすべて削除して、OpenShift イメージのキャッシュを再度有効にできます。
$ minishift config unset image-caching
2.3.4. ローカルキャッシュからのイメージの削除
イメージは $MINISHIFT_HOME/cache/images の下にキャッシュされ、SHA256 ブロブとして、イメージ名で SHA を照合する際の詳細情報が含まれるインデックスとして保存されます。
ローカルキャッシュからイメージを削除するには、minishift image delete
コマンドを使用します。
$ minishift image delete <image-name-0> <image-name-1> ... Deleting <image-name-0> from the local cache OK Deleting <image-name-1> from the local cache OK