「Kubernetes」と「Nomad」、どう使い分けるとよいのか:コンテナ実行基盤「Nomad」をKubernetesと比較検証(終)
コンテナオーケストレーションツールとして知られる「Kubernetes」とHashiCorpが提供する「Nomad」を比較検証する本連載。最終回はKubernetesとNomadの選定指標について解説します。
本連載第1回から第3回までKubernetesとNomadの概要を解説してきました。
最終回となる本記事では、KubernetesとNomadの提供サービスを機能ごとに比較し、KubernetesやNomadを選定するための指標を筆者の視点で紹介します。
クラスタ構築
Kubernetesにはクラスタ構築用のツールが用意されているので、簡単にクラスタを構築できます。またマネージドサービスを利用すれば、より簡潔な手順でクラスタを構築することが可能です。
Nomadはシングルバイナリで提供されているので、コンポーネントを選定してインストールする観点での煩雑さはありません。しかし、ワークロードごとに必要な機能次第では、コンポーネントをインストールするために以下の準備が必要です。
- Consul
- Vault
- Driverランタイム
- Community Driver
またNomadはdevモードで動かし、HashiCorp Learnで提供されているプラクティスを簡単に実行できます。それ故にクラスタ構築も簡単そうなイメージがありますが、実際は容易でなく、上に挙げたコンポーネントの準備に加え、次の作業も必要です。
- TLS通信のための認証局や証明書のインストール
- VaultのBackend Storage(複数オプションがある)と初期化
- Consul DNSを利用するための準備(iptablesなど)
- Vaultトークン設定
- ACL(Access Control List)設定
いずれのプロダクトも、CNI(Container Network Interface)のためのネットワーク設定が必要です。
以上のように、エコシステムとして見てみるとKubernetesが複雑でNomadよりもクラスタ構築は大変かもしれませんが、マネージドサービスやツールの存在がKubernetesでのクラスタ構築を容易にしています。
アクセスコントロール
Kubernetesには認証、認可、リクエストを制御する機能があり、それぞれのオプションが豊富です。さらに、カスタムコントローラーやWebhookを実装することで振る舞いをカスタマイズすることも可能です。
Nomadはトークン認証でポリシーベース認可のACLを利用できます。PolicyはRuleごとに設定が可能です。RuleはNamespaceやNomadオブジェクトごとに定義されており、任意のCapabilityをRuleに設定することでさらに細かく制御できます。
またNomadのトークンとポリシー管理をVaultにオフロードすることも可能です。
構築するシステムの要件に合わせてカスタムアクセスコントロールを組み込む場合は、Kubernetesが便利です。
ネットワーク
アプリケーション間の通信に必要なネットワークを管理するコンセプトはどちらも似ており、いずれのプロダクトもホストネットワークを利用できます。
Copyright © ITmedia, Inc. All Rights Reserved.