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