Red Hat Training
A Red Hat training course is available for OpenShift Container Platform
13.3. Kubernetes リソースでのイメージストリームの使用
OpenShift Container Platform のネイティブリソースであるイメージストリームは、ビルド または デプロイメント などの OpenShift Container Platform で利用可能な残りのネイティブリソースのすべてと共に追加の設定なしで機能します。現時点で、これらは ジョブ、レプリケーションコントローラー、レプリカセットまたは Kubernetes デプロイメント などのネイティブ Kubernetes リソースと共に機能します。
クラスター管理者は使用可能な リソースを正確に設定 することができます。
この機能が有効な場合、リソースの image フィールドにイメージストリームの参照を配置することができます。この機能を使用する場合、リソースと同じプロジェクトにあるイメージストリームのみを参照することができます。イメージストリームの参照は、単一セグメントの値で設定される必要があります。 たとえば ruby:2.5 の場合、ruby は 2.5 という名前のタグを持ち、参照するリソースと同じプロジェクトにあるイメージストリームの名前になります。
この機能を有効にする 2 つの方法があります。
- 特定のリソースでイメージストリームの解決を有効にする。これにより、このリソースのみがイメージフィールドのイメージストリーム名を使用できます。
- イメージストリームでイメージストリームの解決を有効にする。これにより、このイメージストリームを参照するすべてのリソースがイメージフィールドのイメージストリーム名を使用できます。
上記の操作のいずれも oc set image-lookup を使用して実行できます。たとえば、以下のコマンドはすべてのリソースが mysql という名前のイメージストリームを参照できるようにします。
$ oc set image-lookup mysql
これにより、Imagestream.spec.lookupPolicy.local フィールドが true に設定されます。
イメージルックアップが有効なイメージストリーム
apiVersion: v1
kind: ImageStream
metadata:
annotations:
openshift.io/display-name: mysql
name: mysql
namespace: myproject
spec:
lookupPolicy:
local: true
有効な場合には、この動作はイメージストリーム内のすべてのタグに対して有効化されます。
以下を使用してイメージストリームをクエリーし、このオプションが設定されているかどうかを確認できます。
$ oc set image-lookup
さらに、特定のリソースでイメージルックアップを有効にすることもできます。以下のコマンドは mysql という名前の Kubernetes デプロイメントがイメージストリームを使用できるようにします。
$ oc set image-lookup deploy/mysql
これにより、alpha.image.policy.openshift.io/resolve-names アノテーションがデプロイメントに設定されます。
イメージルックアップが有効にされたデプロイメント
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
namespace: myproject
spec:
replicas: 1
template:
metadata:
annotations:
alpha.image.policy.openshift.io/resolve-names: '*'
spec:
containers:
- image: mysql:latest
imagePullPolicy: Always
name: mysql
イメージルックアップを無効にするには、--enabled=false を渡します。
$ oc set image-lookup deploy/mysql --enabled=false