コンテナ実行基盤「Kubernetes」「Nomad」の基本 クラスタの構成方式やデプロイの仕組み:コンテナ実行基盤「Nomad」をKubernetesと比較検証(1)
コンテナオーケストレーションツールとして知られる「Kubernetes」とHashiCorpが提供する「Nomad」を比較検証する本連載。第1回はKubernetesとNomadの基本をおさらいします。
昨今、ビジネスアプリケーションをモノリシックからマイクロサービスの形に変化させることに注目が集まっています。アプリケーションを機能単位に分割し、マイクロサービスとして実装したものを組み合わせることで、機能ごとの役割や要件に応じて言語やミドルウェアを変更できます。また機能ごとに責任を分担させられるためアプリケーションをシンプルに保ちやすくなります。
運用面ではアプリケーションを停止させることなく、機能ごとのアップデートが可能となります。またアップデートの一部をリリースする「カナリアリリース」でABテストを実施できます。マイクロサービスで実装しアプリケーションは冗長化も進んでおり、可用性が高い設計になっています。
ではマイクロサービスはどのような実行基盤上に構築するとよいのでしょうか?
実行基盤を考える上で重要なことは、障害が発生するリソース単位を見極めることです。アプリケーションはOSの機能を利用するため、1つのアプリケーションに1つのOSが必要です。OSは1つのコンピュータあるいは仮想化された実行基盤(以降、VM)で実行されています。オンプレミスでもクラウドでもハードウェアが存在しており、ハードウェアに障害が発生すればそのハードウェア上のアプリケーションに影響を与えます。運が悪ければサービスに影響が出てしまうでしょう。
複数のVMに対して同じ機能を持ったアプリケーションを実行することで冗長化は確保できます。しかしアプリケーションを分散して配置するためには以下のような複数の課題があります。
- リソースに最適なアロケーション
- ログ管理
- スケールイン/アウト
- ネットワーク管理
- 設定変更
- オペレーション(再起動など)
- バージョンアップ
- モニタリング
これらを手作業で実施するのは困難を極めますが、幸いにもこうした作業の負荷を減らす製品が幾つか出てきています。ユーザーが任意のワークロードを実行できる基盤を提供し、コンピュートリソースにクラスタという論理構成を構築、スケジューラが適切なアロケーションを実施して、アプリケーションやネットワークの管理を実行できます。その具体的な製品として知られるのがOSS(Open Source Software)のコンテナオーケストレーションツールである「Kubernetes」ですが、他にも存在します。そのソリューションの一つが「Nomad」です。
本連載ではHashiCorpのNomadの機能をKubernetesと比較、検証してNomadの可能性を紹介していきます。
Kubernetesとは
Copyright © ITmedia, Inc. All Rights Reserved.