データ永続化と構築運用の自動化を実現する「PostgreSQL on Kubernetes」の仕組み:クラウドネイティブ時代のデータベース(2) - @IT
KubernetesでPostgreSQLを扱うことでどのようにアジリティ、可用性、拡張性およびDB固有の要件を実現できるか解説
Operatorとは、Kubernetesで動作するアプリケーションの各種管理を自動化するための機能だ。管理が複雑であるPostgreSQLのようなステートフルアプリケーションの場合は、プライマリーとレプリカの役割と、DB固有の要件(自動フェイルオーバー、バックアップ、データの永続化など)を考慮する必要があるため、Kubernetesの標準的な機能だけでPostgreSQLクラスタを構築、管理するのは難しい。 そこで、PostgreSQL専用のOperatorを利用すれば、PostgreSQLクラスタをKubernetesで簡単にデプロイ、管理できるようになる。手作業だった監視、障害時の対応、バックアップ、スケーリングといったさまざまな運用管理をコード化してKubernetesに組み込み、Kubernetesの本来の機能を拡張することで、DBの管理も容易になる。 クエリを振り分けるためのツールとして「Pgpool-II」がよく使われている。Pgpool-IIはPostgreSQL専用のミドルウェアで、PostgreSQLのSQLパーサが移植されており、クエリを解析できる。Pgpool-IIがアプリケーションとPostgreSQLの間に位置し、アプリケーションからのクエリを解析し、書き込みクエリをプライマリーに送り、読み取りクエリをプライマリーとレプリカのいずれかに送って負荷分散する。