5.2. イメージのタグ付け
以下のセクションでは、OpenShift Container Platform イメージストリームおよびそれらのタグを操作するためにコンテナーイメージのコンテキストでイメージタグを使用する概要および方法を説明します。
5.2.1. イメージタグ リンクのコピーリンクがクリップボードにコピーされました!
イメージタグは、イメージストリーム内の他のイメージから特定のイメージを識別するリポジトリーのコンテナーイメージに適用されるラベルです。通常、タグはある種のバージョン番号を表します。たとえば、ここでは :v3.11.59-2 がタグになります。
registry.access.redhat.com/openshift3/jenkins-2-rhel7:v3.11.59-2
registry.access.redhat.com/openshift3/jenkins-2-rhel7:v3.11.59-2
イメージにタグを追加することができます。たとえば、イメージには :v3.11.59-2 および :latest というタグが割り当てられる可能性があります。
OpenShift Container Platform は docker tag コマンドに似た oc tag コマンドを提供しますが、これらはイメージ上で直接動作するのではなくイメージストリームで動作します。
5.2.2. イメージタグの規則 リンクのコピーリンクがクリップボードにコピーされました!
イメージは時間の経過と共に変化するもので、それらのタグはその変化を反映します。ほとんどの場合、イメージタグはビルドされる最新イメージを常に参照します。
v2.0.1-may-2019 のように、タグ名に非常に多くの情報が組み込まれる場合、タグはイメージの単一のリビジョンのみを参照し、更新されることはありません。デフォルトのイメージのプルーニングオプションを使用しても、このようなイメージは削除されません。非常に大規模なクラスターでは、イメージが修正されるたびに新規タグが作成される設定の場合、古くなって久しいイメージの余分のタグメタデータで etcd データストアが一杯になる可能性があります。
タグの名前が v2.0 である場合はイメージのリビジョンの数が多くなることが予想されます。これによりタグ履歴が長くなるため、イメージプルーナーが古くなり使われなくなったイメージを削除する可能性が高くなります。
タグの名前付け規則は各自で定めることができますが、ここでは <image_name>:<image_tag> 形式のいくつかの例を見てみましょう。
| 説明 | 例 |
|---|---|
| リビジョン |
|
| アーキテクチャー |
|
| ベースイメージ |
|
| 最新 (不安定な可能性がある) |
|
| 最新 (安定性がある) |
|
タグ名に日付を含める必要がある場合、古くなり使用されなくなったイメージおよび istags を定期的に検査し、これらを削除してください。そうしないと、古いイメージを保持して、リソースの使用量が増大する可能性があります。
5.2.3. イメージストリームへのタグの追加 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform のイメージストリームは、タグで識別される 0 個以上のコンテナーイメージで構成されます。
各種のタグを利用できます。デフォルトの動作では、特定の時点のイメージを指す permanent タグが使用されます。permanent タグが使用され、ソースが変更される場合、宛先のタグは変更されません。
tracking タグの場合は、宛先タグのメタデータがソースタグのインポート時に更新されます。
手順
oc tagコマンドを使用して、タグをイメージストリームに追加できます。oc tag <source> <destination>
$ oc tag <source> <destination>Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、
rubyイメージストリームのstatic-2.0タグをrubyイメージストリーム2.0タグの現行のイメージを常に参照するように設定するには、以下を実行します。oc tag ruby:2.0 ruby:static-2.0
$ oc tag ruby:2.0 ruby:static-2.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
rubyイメージストリームにstatic-2.0という名前のイメージストリームタグが新たに作成されます。この新規タグは、oc tagの実行時にruby:2.0イメージストリームタグが参照したイメージ ID を直接参照し、これが参照するイメージが変更されることがありません。宛先タグがソースタグの変更時に更新されるようにするには、
--alias=trueフラグを使用します。oc tag --alias=true <source> <destination>
$ oc tag --alias=true <source> <destination>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
永続的なエイリアス (latest または stable など) を作成するには、tracking タグを使用します。このタグは単一イメージストリーム内でのみ適切に機能します。複数のイメージストリーム間で使用されるエイリアスを作成しようとするとエラーが生じます。
-
また、
--scheduled=trueフラグを追加して、宛先タグが定期的に更新 (再インポート) されるようにもできます。期間はシステムレベルでグローバルに設定できます。 --referenceフラグはインポートされないイメージストリームを作成します。このタグはソースの場所を参照しますが、これを永続的に参照します。統合レジストリーのタグ付けされたイメージを常にフェッチするように OpenShift Container Platform に指示するには、
--reference-policy=localを使用します。レジストリーはプルスルー (pull-through) 機能を使用してイメージをクライアントに提供します。デフォルトで、イメージ Blob はレジストリーによってローカルにミラーリングされます。その結果、それらが次回必要となる場合により迅速にプルされます。また、このフラグは--insecure-registryをコンテナーランタイムに指定しなくても、イメージストリームに非セキュアなアノテーションがあるか、タグに非セキュアなインポートポリシーがある限り、非セキュアなレジストリーからのプルを許可します。
5.2.4. タグのイメージストリームからの削除 リンクのコピーリンクがクリップボードにコピーされました!
タグをイメージストリームから削除できます。
手順
タグをイメージストリームから完全に削除するには、以下を実行します。
oc delete istag/ruby:latest
$ oc delete istag/ruby:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、以下を実行します。
oc tag -d ruby:latest
$ oc tag -d ruby:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.5. イメージストリームでのイメージの参照 リンクのコピーリンクがクリップボードにコピーされました!
タグを使用してイメージストリームのイメージを参照するには、以下の参照タイプを使用します。
| 参照タイプ | 説明 |
|---|---|
|
|
|
|
|
|
|
|
|
イメージストリーム定義のサンプルを表示すると、これらには ImageStreamTag の定義と DockerImage の参照が含まれていますが、ImageStreamImage に関連するものは何も含まれていないことに気づくでしょう。
これは、ImageStreamImage オブジェクトが、イメージをイメージストリームにインポートしたり、タグ付けしたりする際に OpenShift Container Platform に自動的に作成されるためです。イメージストリームを作成するために使用するイメージストリーム定義で ImageStreamImage オブジェクトを明示的に定義する必要はありません。
手順
所定のメージストリームおよびタグのイメージを参照するには、
ImageStreamTagを使用します。<image_stream_name>:<tag>
<image_stream_name>:<tag>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 所定のイメージストリームおよびイメージの
shaID のイメージを参照するには、ImageStreamImageを使用します。<image_stream_name>@<id>
<image_stream_name>@<id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <id>は、ダイジェストとも呼ばれる特定イメージのイミュータブルな ID です。所定の外部レジストリーのイメージを参照または取得するには、
DockerImageを使用します。openshift/ruby-20-centos7:2.0
openshift/ruby-20-centos7:2.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記タグが指定されていない場合、
latestタグが使用されることが想定されます。サードパーティーのレジストリーを参照することもできます。
registry.redhat.io/rhel7:latest
registry.redhat.io/rhel7:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow またはダイジェストでイメージを参照できます。
centos/ruby-22-centos7@sha256:3a335d7d8a452970c5b4054ad7118ff134b3a6b50a2bb6d0c07c746e8986b28e
centos/ruby-22-centos7@sha256:3a335d7d8a452970c5b4054ad7118ff134b3a6b50a2bb6d0c07c746e8986b28eCopy to Clipboard Copied! Toggle word wrap Toggle overflow