Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する連載。今回は、Operatorを利用して、Kubernetes上でデータベースを動作させる方法とその利点を紹介します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Kubernetesやクラウドネイティブをより便利に利用する技術やツールの概要、使い方を凝縮して紹介する本連載「Cloud Nativeチートシート」。連載第8回では、「Operator」を利用してKubernetesを拡張する方法を紹介しました。
今回はそのOperatorを利用して、Kubernetes上で「PostgreSQL」を動作させる方法とその利点を紹介します。
DBマスター:え、Kubernetesでデータベース(DB)を動かしたことないの?
DB初心者:Kubernetes上でDBを動かしていいんですか? じっちゃんは「Kubernetes上でDBは絶対動かすな」って言ってましたよ。
DBマスター:それは、おじいちゃんだけに情報が古いね。今は、Operatorっていう便利なもんがあって、安心安全にDBを運用できるんだよ。
さて、そもそもなぜDBをKubernetes上で動かすのでしょうか?
いろいろなモチベーションがあるとは思いますが、オンプレミスでKubernetesを利用している場合、「Amazon Relational Database Service」(RDS)のようなクラウドベンダーが提供するDBサービスを利用できないので、自分でPostgreSQLのようなオープンソースソフトウェア(OSS)のDBを構築したいというケースがあるでしょう。
もちろんPostgreSQLのPodを起動するだけなら、DBのコンテナイメージを利用できますが、耐障害性やスケーラビリティ、バックアップやモニタリングまで考えると、PostgreSQL本体以外にもさまざまなプロダクトや、その設計と管理が必要になります。
また、アプリケーションのマイクロサービス化が進むにつれて、単一の巨大なDBではなく、サービスごとに小分けにしたDBを作成する構成も取られるようになります。この場合、多数のDBを管理する必要がありますが、従来の運用ではDBの数が増加するにつれて運用コストも増加しがちです。
このような背景の下、多数のDBを効率的に管理するために、DBも「Deployment」「StatefulSet」などのようにKubernetesのリソースとして扱いたいというのも耳にするケースです。
この点、「PostgreSQL Operator」を利用すれば、運用に必要なものが一通りそろったPostgreSQLクラスタを簡単に構築でき、他のアプリケーション同様Kubernetes上のリソースとして運用できます。
本記事では、PostgreSQL Operatorを動かして例示しながら、その手軽さやKubernetes上でDBを動かす利点を見ていきます。
2022年7月現在、PostgreSQL Operatorは、PostgreSQL開発コミュニティーが公式に開発、提供しているものはありません。さまざまな企業やコミュニティーがそれぞれ開発したPostgreSQL Operatorを提供している状況です(※1)。
※1:PostgreSQL Operatorの比較については、NTTデータが公開しているスライドがあるので、PostgreSQL Operatorごとの機能の違いや、PGO以外のOperatorに興味のある方はこちらもご参照ください。
今回は数あるPostgreSQL Operatorの中でも、PostgreSQLコア開発者が複数在籍する企業Crunchy Dataが開発を主導している「PGO」を取り上げます。
今回利用する機能の範囲で、PGOが作成するPostgreSQLクラスタの概要を図示します。
Copyright © ITmedia, Inc. All Rights Reserved.