IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウドネイティブで行こう

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第3回 コンテナオーケストレーションとは (宮崎悟) 2022年10月

前回は、クラウドネイティブにおける重要な要素、アプリケーションコンテナについて紹介しました。今回はコンテナを操作するために使用する、コンテナオーケストレーションについて説明します。

コンテナオーケストレーション

クラウドネイティブな環境では、複数のコンテナを連携し、動的に増減して使用します。これによりサービスの継続性や負荷に応じて、コンテナ数を制御します。これを行う機能をコンテナオーケストレーションと呼びます。

docker compose/swarm

dockerは、コンテナの最初の実装ですが、dockerコンテナを組み合わて使用する docker composeが用意されています。docker composeは、複数のコンテナ、ネットワーク、ボリューム(ストレージ)を組み合わせ、連携させてサービスを提供します。また、YAMLファイルで構成を定義するのが特徴です。 以下はdocker composeの構成例です。下図のウェブサーバ、アプリケーションサーバ、データベースがコンテナになります。赤線はネットワークの流れを指します。dockerではホスト上のコンテナ全体で使用するdocker0 というブリッジを使用し、ホストのネットワークと接続します。赤の線はdocker composeで作成したネットワークを指し、それを使用してdocker compose内へ通信します。そして、ホスト側のネットワークであるdocker0 から指定のポートを指定したコンテナへ接続できます。青線は、作成したDocker ボリュームというストレージ領域で、各コンテナはこのボリュームをマウントします。一般的にコンテナが作成したデータは、コンテナ削除時に同時に削除されます。ボリュームはコンテナ削除時に残したいデータを保存する場所で、提供するアプリケーション自体はコンテナ内に配置し、それ以外はPV(Persistent Volume=恒常的なボリューム)に配置するのが一般的です。そのため、アプリケーションによってはボリュームを使用しないこともあります。

docker-compose.drawio

docker composeは便利ですが、1ホストでしか使用できないという問題があります。そこで出てくるのがdocker swarmです。docker swarmは、docker composeに似ていますが、複数ホストをクラスタとして使用でき、コンテナをスケール可能なことが特徴です。

docker-swarm.drawio

docker swarmでは、Swarmマネージャとワーカーで構成されます。Swarmマネージャーと各ノード(OSのこと)間の接続はTLSで暗号化して接続します。docker composeでは、コンテナが1つずつしか指定できないのに対し、コンテナをスケールできるサービスとして登録できます。そのため、アクセス負荷によってサービス内コンテナ数の自動的な増減を行えます。また、複数ノードを登録することで、ノードごとダウンした場合でもサービス継続可能になります。

Kubernetes

Kubernetesは現在、コンテナオーケストレーションツールのデファクトスタンダードとして広く使用されています。2014年Google社が発表し、Google社とLinux Foundationと共同で設立した CNCFCloud Native Computing Foundation])に起草されました。現在も、Open Source Softwareとして活発に活動しています。

Kubernetesの構成は、docker swarmに似ていますが、APIで制御できる範囲が幅広くなっています。今回は紹介のみにとどめ、次回説明していきます。

終わりに

今回は、コンテナを操作するために使用するコンテナオーケストレーションについて説明しました。今回は、歴史的経緯として、docker composeとdocker swarm を紹介しましたが、管理のシンプルさから今でも使用されています。ECSなどのマネージドコンテナでは、docker-compose をベースにしたコンテナサービスを構築できるほどです。

次回は、Kubernetesについて、もう少し詳しく説明します。次回をお楽しみに。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes