Pacemakerのbundle機能
今月の気になるオープンソース情報(2019年4月号)
OSS研究室 大野 公善
今回は、Pacemakerのbundle機能について紹介いたします。
近年、コンテナ技術が注目されてきました。コンテナを扱うシステムではDocker/Kubernetes等が広く利用されています。特にKubernetesは、コンテナオーケストレーションツールのデファクトスタンダードとなっています。
Kubernetesは、システムの負荷に合わせてコンテナを自動的に増減させたり、コンテナが不意に停止してしまった場合に自動的に再起動したりすることができます。停止しないシステムを提供するにはとても便利なツールです。一方、データベース等、ステートフルと言われるサービスについては、障害時の対策を十分に行うことができないという弱点もあります。
- データベースのようなステートフルなアプリケーションをコンテナ化したい。
- ハードウェアやソフトウェアに障害が発生しても継続してサービスを提供したい。
というような要望に応えるために Pacemaker の bundle 機能を使用することができます。
Pacemakerは、LinuxシステムでHAクラスタを構成するためのオープンソースソフトウェアです。bundleとは、Pacemakerで構築するHAクラスタにおいて、隔離環境を提供するための機能です。bundleは、Pacemakerのクラスタリソースとしてコンテナを扱うことができます。
Pacemakerのbundleは下記のような特徴があります。
コンテナの自動起動
コンテナを起動し、そのコンテナの中で設定したアプリケーションを起動することができます。指定した数のコンテナのレプリカを起動することも可能です。
IPアドレスの割り当て
起動したコンテナにIPアドレスを自動的に割り当てることができます。
ストレージのマッピング
サーバ上のディレクトリやDRBD-SDSのボリューム等をコンテナにマッピングすることができます。マッピングしたボリュームは、コンテナの中から通常のディレクトリと同じように扱うことができます。
監視とフェイルオーバー
以下の監視を行うことができます。
- コンテナ内で起動するアプリケーションのサービス監視
- コンテナの死活監視
- ハードウェアの死活監視
Pacemaker bundle にはできないこともあります。
Dockerコンテナへの負荷分散
コンテナのレプリカを複数起動することはできますが、それらのコンテナへの負荷分散を行う機能はありません。
汎用的なDockerイメージの利用
Pacemaker bundle で扱うDockerイメージには、pacemaker-remoteというソフトウェアを同梱する必要があります。このため、DockerHub等のコンテナレジストリに公開されているDockerイメージをそのまま利用することはできません。
上記の特徴を踏まえ、ステートフルなサービスはKubernetesを使い、ステートレスなサービスにはPacemaker bundleを使う等、使用するソフトウェアをうまく見極めることが重要になります。
デージーネットでは、KubernetesやPacemaker bundle等を組み合わせて、最適なコンテナ環境をご提案させて頂きます。ぜひ、安全で便利なコンテナ環境を構築するために、Pacemaker bundleの利用をご検討ください。