第3章 イメージのメタデータ
3.1. 概要
イメージのメタデータを定義することで、OpenShift Container Platform によるコンテナーイメージの消費が改善され、イメージを使用する開発者が OpenShift Container Platform をより快適に使用できるようになります。たとえば、メタデータを追加して、イメージに関する役立つ情報を提供したり、必要とされる可能性のある他のイメージを提案したりできます。
このトピックでは、現在のユースケースに必要なメタデータのみを定義します。他のメタデータまたはユースケースは、今後追加される可能性があります。
3.2. イメージメタデータの定義
Dockerfile で LABEL
命令を使用して、イメージのメタデータを定義することができます。ラベルは、イメージやコンテナーにアタッチする鍵と値のペアである点が環境変数に似ています。ただし、ラベルは、実行中のアプリケーションに表示されず、イメージやコンテナーをすばやく検索する場合にも使用可能な点が、環境変数とは異なります。
LABEL
命令に関する詳細は、Docker ドキュメント を参照してください。
ラベル名は、通常 namespace を指定する必要があります。namespace は、対象のラベルを選択して使用するプロジェクトを反映するように設定してください。OpenShift Container Platform の場合は、namespace は io.openshift に、Kubernetes の場合は、namespace は io.k8s に設定してください。
形式に関する詳細は、「Docker のカスタムメタデータ」に関するドキュメントを参照してください。
変数 | 説明 |
---|---|
|
このラベルには、コンマ区切りの文字列値の一覧として表現されているタグの一覧が含まれます。タグを使用して、コンテナーイメージを幅広い機能エリアに分類します。タグがあれば、UI および生成ツールがアプリケーションの作成プロセス時に適切なコンテナーイメージを提案しやすくなります。 LABEL io.openshift.tags mongodb,mongodb24,nosql |
|
コンテナーイメージにすでにタグが指定されていない場合に、生成ツールと UI が適切な提案を行うのに使用するタグを指定します。たとえば、コンテナーイメージが LABEL io.openshift.wants mongodb,redis |
|
このラベルは、コンテナーイメージのコンシューマーに、このイメージが提供するサービスや機能に関する詳細情報を提供するのに使用できます。UI は、この説明とコンテナーイメージ名を使用して、人間が解読しやすい情報として、エンドユーザーに提供します。 LABEL io.k8s.description The MySQL 5.5 Server with master-slave replication support |
|
このラベルには、*Dockerfile* にある
形式は LABEL io.openshift.expose-services 2020/udp:ftp,8080:https |
|
イメージは、この変数を使用して、スケーリングがサポートされていない旨を示し、その内容を UI でこのイメージを使用するユーザーに、通知します。スケーリング不可に指定した場合には、 LABEL io.openshift.non-scalable true |
|
このラベルは、コンテナーイメージが正しく機能するにはどの程度リソースが必要かを提案します。UI 経由でユーザーに対して、このコンテナーイメージをデプロイすると、ユーザークォータを超過する可能性があることを警告します。この値は、Kubernetes の数量と互換性がある必要があります。 LABEL io.openshift.min-memory 8Gi LABEL io.openshift.min-cpu 4 |