OpenShiftの機能紹介 ―― コンテナの自動デプロイメント
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
CTC教育サービスはコラム「OpenShiftの機能紹介 ―― コンテナの自動デプロイメント を公開しました。
はじめに
第84回と第85回では、OpenShiftにおけるDockerイメージのバージョン管理と自動ビルドの機能を説明しました。今回は、作成したDockerイメージからコンテナを起動して、アプリケーションを実行するための「デプロイ設定」を解説します。これで、OpenShiftの代表的な機能である「イメージストリーム(ImageStream)」「ビルド設定(BuildConfig)」「デプロイ設定(DeployConfig)」が理解できたことになります。
さらにOpenShiftでは、これらの設定を一つにまとめた「テンプレート(Template)」を作成することができます。テンプレート管理者が、関連する設定を事前にテンプレートにまとめておくことにより、アプリケーション開発者やテスト/リリース担当者は、複雑な設定を意識することなく、従来型のPaaS環境として簡単に利用することが可能になります。
Podによるコンテナのデプロイ
デプロイ設定を解説する前に、OpenShiftに特有の仕組みである「Pod」について補足しておきます。これは、仮想NICを共有する形で複数のコンテナをまとめてデプロイする機能です。図1のように、同じPodに属するコンテナは、同一のIPアドレスを持っており、お互いに「localhost」経由での通信が可能になります。たとえば、PostgreSQLのデータベースを実行するコンテナと、GUI管理ツールのpgAdminを実行するコンテナを同一のPodにまとめて起動します。通常、pgAdminでは、管理対象のPostgreSQLが稼働するサーバーを指定する必要がありますが、この場合は「localhost」指定で接続することができます。
また、OpenShiftでは外部のNFSサーバーやGlusterFSのファイルシステム領域を「永続ストレージ」として、コンテナに接続することができます。同じPodのコンテナは、同一の永続ストレージ領域を参照することができるので、コンテナ間でファイルを共有することも可能になります。
fig01
図1 複数のコンテナをPodにまとめて起動
デプロイ設定の内容
それでは、Dockerイメージからコンテナを起動するために必要となる「デプロイ設定」を解説します。デプロイ設定では、主に次の項目を指定します。
•Podテンプレート:Podに含めるコンテナなど、Podの内部構成を指定します。
•レプリカ数:起動するPodの数を指定します。
•ノードセレクター:Podを起動するノードを選択する条件を指定します。
•トリガー:Dockerイメージが更新された場合など、Podを自動的に再デプロイする条件を指定します。
Podテンプレートでは、Podに含めるコンテナごとに、使用するDockerイメージ(イメージストリームとタグ名)や接続を受け付けるポート番号などを指定します。レプリカ数は、同一構成のPodを複数起動して、アプリケーションの負荷分散を行う際に指定します。また、ノードセレクターを使用すると、開発環境、テスト環境、本番環境などで、Podを起動する物理サーバーを分けることができます。プロジェクト単位で事前にノードグループを指定しておき、さらに、デプロイ設定のノードセレクターでグループ内の特定ノードを指定するなども可能です。
この続きは以下をご覧ください
http://www.school.ctc-g.co.jp/columns/nakai/nakai86.html
ソーシャルもやってます!