第7章 Kubernetes リソースでのイメージストリームの使用
OpenShift Container Platform のネイティブリソースと標準の Kubernetes リソースの両方でイメージストリームを使用するには、リソース定義内でイメージストリームを参照します。イメージストリームは、Build、DeploymentConfigs、Job、ReplicationController、ReplicaSet、デプロイメント などのリソースと連携して動作します。
7.1. Kubernetes リソースでのイメージストリームの有効化 リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes リソースを使用する場合は、イメージストリーム名とそのタグを識別する ruby:2.5 などのセグメント値を 1 つ指定して、同じプロジェクト内にあるイメージストリームを参照する必要があります。これにより、リソースがそのスコープ内のローカルイメージストリームを正しくターゲットにします。
デフォルトプロジェクトでワークロードを実行したり、デフォルトプロジェクトへのアクセスを共有したりしないでください。デフォルトのプロジェクトは、コアクラスターコンポーネントを実行するために予約されています。
デフォルトプロジェクトである default、kube-public、kube-system、openshift、openshift-infra、openshift-node、および openshift.io/run-level ラベルが 0 または 1 に設定されているその他のシステム作成プロジェクトは、高い特権があるとみなされます。Pod セキュリティーアドミッション、Security Context Constraints、クラスターリソースクォータ、イメージ参照解決などのアドミッションプラグインに依存する機能は、高い特権を持つプロジェクトでは機能しません。
Kubernetes リソースでイメージストリームを有効にする方法は 2 つあります。
- 特定のリソースでイメージストリームの解決を有効にする。これにより、このリソースのみがイメージフィールドのイメージストリーム名を使用できます。
- イメージストリームでイメージストリームの解決を有効にする。これにより、このイメージストリームを参照するすべてのリソースがイメージフィールドのイメージストリーム名を使用できます。
oc set image-lookup を使用して、特定のリソース上のイメージストリームの解決またはイメージストリーム上のイメージストリームの解決を有効にすることができます。
手順
すべてのリソースが
mysqlという名前のイメージストリームを参照できるようにするには、以下のコマンドを入力します。$ oc set image-lookup mysqlこれにより、
Imagestream.spec.lookupPolicy.localフィールドが true に設定されます。イメージルックアップが有効なイメージストリーム
apiVersion: image.openshift.io/v1 kind: ImageStream metadata: annotations: openshift.io/display-name: mysql name: mysql namespace: myproject spec: lookupPolicy: local: true有効な場合には、この動作はイメージストリーム内のすべてのタグに対して有効化されます。
次に、イメージストリームをクエリーし、このオプションが設定されているかどうかを確認できます。
$ oc set image-lookup imagestream --listオプション: 特定のリソースでイメージ検索を有効にできます。
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