第6章 イメージストリームの管理

イメージストリームは、継続的な方法でコンテナーイメージの作成および更新を行う手段を提供します。イメージの改良により、タグを使用して新規バージョン番号を割り当て、変更を追跡できるようになりました。本書では、イメージストリームの管理方法について説明します。

6.1. イメージストリームの使用

イメージストリームおよびその関連付けられたタグは、OpenShift Container Platform 内でコンテナーイメージを参照するための抽象化を提供します。イメージストリームとそのタグを使用して、利用可能なイメージを確認し、リポジトリーのイメージが変更される場合でも必要な特定のイメージを使用していることを確認できます。

イメージストリームには実際のイメージデータは含まれませんが、イメージリポジトリーと同様に、関連するイメージの単一の仮想ビューを提示します。

ビルドおよびデプロイメントは、イメージストリームで新規イメージの追加時の通知の有無を監視するように設定し、ビルドまたはデプロイメントをそれぞれ実行してこれに対応するように設定できます。

たとえば、デプロイメントで特定のイメージを使用していて、そのイメージの新規バージョンが作成される場合、デプロイメントを、そのイメージの新規バージョンを選択できるように自動的に実行きます。

ただし、デプロイメントまたはビルドで使用されるイメージストリームタグが更新されない場合は、コンテナーイメージレジストリーのコンテナーイメージが更新されても、ビルドまたはデプロイメントは以前のおそらくは既知の正常なイメージをそのまま使用します。

ソースイメージは以下のいずれかに保存できます。

  • OpenShift Container Platform の統合レジストリー
  • registry.redhat.io または hub.docker.com などの外部レジストリー
  • OpenShift Container Platform クラスターの他のイメージストリーム

(ビルドまたはデプロイメント設定などの) イメージストリームタグを参照するオブジェクトを定義する場合は、Docker リポジトリーではなく、イメージストリームタグを参照します。アプリケーションのビルドまたはデプロイ時に、OpenShift Container Platform はイメージストリームタグを使用して Docker リポジトリーにクエリーを送信し、イメージの関連付けられた ID を特定し、正確なイメージを使用します。

イメージストリームメタデータは他のクラスター情報と共に etcd インスタンスに保存されます。

イメージストリームの使用には、いくつかの大きな利点があります。

  • コマンドラインを使用して再プッシュすることなく、タグ付けや、タグのロールバック、およびイメージの迅速な処理を実行できます。
  • 新規イメージがレジストリーにプッシュされると、ビルドおよびデプロイメントをトリガーできます。また、OpenShift Container Platform には他のリソースの汎用トリガーがあります (Kubernetes オブジェクトなど)。
  • 定期的な再インポートを実行するためにタグにマークを付けることができます。ソースイメージが変更された場合、その変更は認識され、イメージストリームに反映されます。これにより、ビルドまたはデプロイメント設定のいずれかに応じて、ビルドおよび/またはデプロイメントフローがトリガーされます。
  • 詳細なアクセス制御を使用してイメージを共有し、チーム間でイメージを迅速に分散できます。
  • ソースイメージが変更されても、イメージストリームタグはイメージの既知の正常なバージョンを参照したままになり、アプリケーションに予期しない障害が発生しないようにします。
  • イメージストリームオブジェクトのパーミッションを使用して、イメージを表示し、使用できるユーザーについてのセキュリティー設定を行うことができます。
  • クラスターレベルでイメージを読み込んだり、一覧表示するパーミッションのないユーザーでも、イメージストリームを使用してプロジェクトでタグ付けされたイメージを取得できます。