ベアメタルからクラウドへ:OpenStackデプロイツール 3

Auto Draft

前回は強力なベンダーのバックアップがある2つのデプロイツールを紹介しましたが、今回は主にコミュニティメンバーによってメンテナンスされているデプロイプロジェクト、OpenStack-Ansible、Kolla-Ansible、OpenStack-Helmを紹介します。

OpenStack-Ansible

OpenStack-Ansibleはその名の通り、Ansibleを通じてOpenStackをデプロイするためのツールであり、非常に多くのOpenStackコンポーネントやさまざまなプラグインをサポートしています。

OpenStack-Ansibleは主にlxcコンテナとAnsible-playbookを使用してOpenStackをインストールしますが、nova-computeのように一部のサービスはlxcコンテナ内には配置されません。

ネットワークプラグインのサポートも、本日紹介する3つのデプロイツールの中で最も充実しており、その中には特殊な環境下で非常に有用なCalicoも含まれています。

OpenStack-AnsibleはOpenStackのデプロイに加えて、OpenStackのストレージに必要なCephを同時にデプロイすることもできます。一方、Kolla-Ansibleなどの他のプロジェクトでは、Cephクラスターを別途自身でデプロイし、config overwriteを通じて設定する必要があります。

Kolla-Ansible

Kolla-Ansibleは本シリーズ記事で採用したデプロイツールです。OpenStack-Ansibleと同様に、Kolla-AnsibleもAnsible playbookを通じてOpenStackをデプロイします。

Kolla-AnsibleとOpenStack-Ansibleの異なる点は、Kolla-AnsibleがKollaプロジェクトで作成されたコンテナを使用して直接デプロイするのに対し、OpenStack-AnsibleはAnsible-Playbookを利用してlxcコンテナ内でインストールと設定を行うことです。これが、Kolla-Ansibleのデプロイ速度がOpenStack-Ansibleよりも大幅に速い理由です。コンテナイメージをプルして設定ファイルを配置すればほぼ完了するため、一つずつ再インストールする必要がなく、パッケージのインストールにかかる時間はコンテナイメージのビルド時に既に消費されているからです。

これが、今回のシリーズ記事でKolla-Ansibleを使用する理由でもあります。インストールが迅速で、設定ファイルも一つだけで非常に簡単にフルスケールのOpenStackクラスターを構築できます。

OpenStack-Helm

OpenStack-Helmは、その名の通りHelmチャートを通じてOpenStackをデプロイするものです。Helmチャートを使用するということは、OpenStackをKubernetes上にデプロイし、Kubernetesを通じて各OpenStackコンポーネントを管理することを意味します。

実際には本番環境でOpenStack-Helmを使用しているコミュニティユーザーもいますが、実のところOpenStack-Helmにはまだ正式な安定版リリース(stable release)がありません。もし使用を検討されている読者がいれば、KubernetesとOpenStackの両方に精通していることをお勧めします。

OpenStackをKubernetes上にデプロイすることで、Kubernetesの自己修復機能などのメリットを享受できますが、筆者はこれが同時に複雑さを増大させると考えています。システム管理者はOpenStackを理解するだけでなく、KubernetesやHelmについても理解する必要があり、これはデバッグにおいて非常に高い難易度をもたらします。

まとめ

以上の3つのOpenStackデプロイ方法は、いずれもコミュニティメンバーによるメンテナンスが中心のツールです。筆者としてはKolla-Ansibleをお勧めします。次回の記事では、Kolla-Ansibleの紹介と、Kolla-Ansibleを使用してオールインワンおよび高可用性のOpenStackクラスターをデプロイする方法について解説を始めます。


著作権表示:特に断りのない限り、本ブログのすべての記事はCC BY-NC-SA 4.0ライセンスの下で提供されています。

コメントを残す