type
status
date
slug
summary
tags
category
icon
password
书籍
イメージ、イメージストリーム、テンプレートの管理
目標
このセクションを完了すると、イメージ、イメージストリーム、テンプレートを管理できるようになります。
イメージの概要
OpenShiftの用語では、イメージとは、単一のコンテナを実行するために必要なすべての要件を含むデプロイ可能なランタイムテンプレートであり、そのイメージのニーズや機能を説明するメタデータを含んでいます。イメージは複数の方法で管理できます。タグを付けたり、インポートしたり、プルしたり、更新したりすることができます。イメージは複数のコンテナにデプロイされ、複数のホストに展開できます。開発者はDockerを使用してイメージをビルドすることも、OpenShiftビルダーツールを使用することもできます。
OpenShiftは柔軟なイメージ管理メカニズムを実装しており、単一のイメージ名は実際には同じイメージの複数の異なるバージョンを指すことができます。ユニークなイメージはそのsha256ハッシュで参照されます。Dockerはバージョン番号を使用せず、タグを使ってイメージを管理します。例えば、v1やv2、またはデフォルトのlatestタグを使います。
イメージストリーム
イメージストリームは、タグで識別された任意の数のコンテナイメージで構成されます。これは、関連するイメージの統合された仮想ビューであり、Dockerのイメージリポジトリに似ています。開発者はイメージとイメージストリームとインタラクションする多くの方法を持っています。例えば、ビルドやデプロイメントは、新しいイメージが追加または変更されたときに通知を受け取り、それに応じて新しいビルドやデプロイメントを実行できます。
以下はイメージストリームの定義例です:
イメージへのタグ付け
OpenShift Container Platformは、oc tagコマンドを提供しており、これはdocker tagコマンドに似ていますが、イメージストリームに対して動作します。タグをイメージに追加することで、その内容を識別しやすくできます。タグはイメージのバージョンを指定する識別子です。例えば、開発者がApacheウェブサーバーのバージョン2.4を含むイメージを持っている場合、そのイメージに次のようにタグを付けることができます:
リポジトリに最新バージョンのApacheウェブサーバーが含まれている場合は、最新のイメージに「latest」タグを付けて、このリポジトリ内で最新のイメージであることを示します:
oc tagコマンドは、次のように使います:
既存のタグやイメージをイメージストリームに追加します。
例えば、rubyイメージの最新のタグが常にタグ2.0の現在のイメージを指すように設定するには、次のコマンドを実行します:
タグをイメージから削除するには、-dパラメーターを使用します:
さまざまなタイプのタグがあります。デフォルトの動作は、特定の時点でのイメージを指す永続的なタグです。これにより、ソースが変更されても、デスティネーションタグは反映されません。
トラッキングタグは、デスティネーションタグのメタデータをインポートするよう指示します。ソースタグが変更されるたびにデスティネーションタグが更新されるように、--alias=trueフラグを使用します:
タグを再インポートするには、--scheduled=trueフラグを使用します:
Dockerに統合されたレジストリから常にタグ付けされたイメージを取得するよう指示するには、
--reference-policy=local
フラグを使用します。デフォルトでは、イメージのブロブはレジストリによってローカルにミラーリングされます。そのため、次回必要になったときにより迅速にプルできます。このフラグを使用すると、イメージストリームに「不安定な」アノテーションが付いている場合や、タグに不安定なインポートポリシーがある場合でも、Dockerデーモンに
--insecure-registry
オプションを供給せずに、セキュリティが確保されていないレジストリからプルできます。推奨されるタグ付けの規則
開発者は、イメージのライフサイクルを考慮してタグを管理する必要があります。例えば、タグ名に「v2.0.1-may-2018」のように多くの情報が埋め込まれていると、そのタグはイメージの一つのリビジョンを指し示すだけで、更新されることはありません。デフォルトのイメージの剪定オプションでは、このようなイメージは削除されることはありません。非常に大きなクラスターでは、各改訂されたイメージに新しいタグを作成する習慣が続くと、タグメタデータが古いイメージのためにデータストアを埋めてしまう可能性があります。
以下の表は、開発者がイメージを管理するために使用できる可能なタグ命名規則を示しています:
説明 | 例 |
リビジョン | myimage:v2.0.1 |
アーキテクチャ | myimage:v2.0-x86_64 |
ベースイメージ | myimage:v1.2-rhel7 |
最新イメージ | myimage:latest |
最新安定版イメージ | myimage:stable |
テンプレートの紹介
テンプレートは、パラメーターを持つオブジェクトのセットを記述し、それを処理してオブジェクトのリストを生成します。テンプレートは、開発者がプロジェクト内で作成する許可があるリソース(サービス、ビルド、構成、デプロイメント構成など)を作成するために使用できます。また、テンプレートは、定義した各オブジェクトにラベルを適用することもできます。開発者は、コマンドラインインターフェースまたはWebコンソールを使用して、テンプレートからオブジェクトのリストを作成できます。
テンプレートの管理
開発者はテンプレートをJSONまたはYAML形式で記述し、コマンドラインインターフェースまたはWebコンソールを使用してインポートできます。テンプレートはプロジェクトに保存され、そのプロジェクトに適切なアクセス権を持つユーザーによって再利用できます。次のコマンドは、コマンドラインインターフェースを使用してテンプレートをインポートする方法を示しています:
テンプレートをインポートする際にラベルを設定することもできます。これにより、テンプレートで定義したすべてのオブジェクトにラベルが適用されます:
以下に基本的なテンプレート定義の例を示します:
このファイルは、テンプレートとして定義されます。
テンプレートの名前が指定され、タグが適用され、リソースとしてポッドが定義され、環境変数が設定され、パラメーターが設定されます。
インスタントアプリケーションとクイックスタートテンプレート
OpenShift Container Platformは、Rails(Ruby)、Django(Python)、Node.js、CakePHP(PHP)、Dancer(Perl)など、さまざまな言語の新しいアプリケーションを迅速に作成するためのデフォルトのインスタントアプリケーションおよびクイックスタートテンプレートを提供します。
クラスター内で使用可能なテンプレートをリストするには、
oc get templates
コマンドを実行します。-n
パラメーターは使用するプロジェクトを指定します。開発者はWebコンソールを使用してテンプレートを参照することもできます。テンプレートを選択すると、パラメーターを調整してテンプレートで定義されたリソースをカスタマイズできます。
参考資料
デプロイメントに関する追加情報は、OpenShift Container Platform Developer Guideのテンプレートセクションで確認できます。
デプロイメントに関する追加情報は、OpenShift Container Platform Developer Guideのイメージ管理セクションで確認できます。
- 作者:みなみ
- 链接:https://www.minami.ac.cn//%E8%B3%87%E6%A0%BC%E5%8B%89%E5%BC%B7/1a9d7ae8-88e2-8069-bdde-c8b0e67ba18d
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章