コンテナオーケストレーションツールとして知られる「Kubernetes」とHashiCorpが提供する「Nomad」を比較検証する本連載。最終回はKubernetesとNomadの選定指標について解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載第1回から第3回までKubernetesとNomadの概要を解説してきました。
最終回となる本記事では、KubernetesとNomadの提供サービスを機能ごとに比較し、KubernetesやNomadを選定するための指標を筆者の視点で紹介します。
Kubernetesにはクラスタ構築用のツールが用意されているので、簡単にクラスタを構築できます。またマネージドサービスを利用すれば、より簡潔な手順でクラスタを構築することが可能です。
Nomadはシングルバイナリで提供されているので、コンポーネントを選定してインストールする観点での煩雑さはありません。しかし、ワークロードごとに必要な機能次第では、コンポーネントをインストールするために以下の準備が必要です。
またNomadはdevモードで動かし、HashiCorp Learnで提供されているプラクティスを簡単に実行できます。それ故にクラスタ構築も簡単そうなイメージがありますが、実際は容易でなく、上に挙げたコンポーネントの準備に加え、次の作業も必要です。
いずれのプロダクトも、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.