第7章 Kubernetes リソースでのイメージストリームの使用
OpenShift Container Platform のネイティブリソースであるイメージストリームは、Build リソース、DeploymentConfigs リソースなどの OpenShift Container Platform で利用可能なネイティブリソースすべてで動作します。これらは、Job リソース、ReplicationController リソース、ReplicaSet リソース、Kubernetes Deployment リソースなどのネイティブ Kubernetes リソースと共に機能することもできます。
7.1. Kubernetes リソースでのイメージストリームの有効化 リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes リソースでイメージストリームを使用する場合、リソースと同じプロジェクトにあるイメージストリームのみを参照できます。イメージストリームの参照は、ruby:2.5 など、単一セグメントの値で構成されている必要があります。この場合、ruby は 2.5 という名前のタグを持ち、参照するリソースと同じプロジェクトにあるイメージストリームの名前です。
デフォルトプロジェクトでワークロードを実行したり、デフォルトプロジェクトへのアクセスを共有したりしないでください。デフォルトのプロジェクトは、コアクラスターコンポーネントを実行するために予約されています。
デフォルトプロジェクトである 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
$ oc set image-lookup mysqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
Imagestream.spec.lookupPolicy.localフィールドが true に設定されます。イメージルックアップが有効なイメージストリーム
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有効な場合には、この動作はイメージストリーム内のすべてのタグに対して有効化されます。
次に、イメージストリームをクエリーし、このオプションが設定されているかどうかを確認できます。
oc set image-lookup imagestream --list
$ oc set image-lookup imagestream --listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
特定のリソースでイメージルックアップを有効にすることができます。
mysqlという名前の Kubernetes デプロイメントがイメージストリームを使用できるようにするには、以下のコマンドを実行します。oc set image-lookup deploy/mysql
$ oc set image-lookup deploy/mysqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
alpha.image.policy.openshift.io/resolve-namesアノテーションがデプロイメントに設定されます。イメージルックアップが有効にされたデプロイメント
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
イメージルックアップを無効にすることができます。
イメージルックアップを無効にするには、
--enabled=falseを渡します。oc set image-lookup deploy/mysql --enabled=false
$ oc set image-lookup deploy/mysql --enabled=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow