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 の場合、ruby2.5 という名前のタグを持ち、参照するリソースと同じプロジェクトにあるイメージストリームの名前になります。

この機能を有効にする 2 つの方法があります。

  1. 特定のリソースでイメージストリームの解決を有効にする。これにより、このリソースのみがイメージフィールドのイメージストリーム名を使用できます。
  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