本シリーズでは、VMware Tanzu Data Serviceの1製品である「VMware Tanzu GemFire」について4回の連載となります。
第一回:GemFireのご紹介と機能性
第二回:Gemfireを仮想マシンへのインストールとREST APIによる操作
第三回:GemFire for Kubernetes のご紹介
第四回:Petclinicを使ったGemfire対応アプリケーション
本記事では、第3回である先日リリースされたGemFire for Kubernetes に関してご紹介させて頂きます。
GemFire とは
VMware Tanzu GemFire は、極めて高速で読み取り/書き込み操作を実行する、分散型インメモリKey-Value ストアです。
可用性の高い並列メッセージキュー、継続的な可用性、およびダウンタイムなしで動的に拡張できるイベント駆動型アーキテクチャを提供しています。ハイパフォーマンスが求められるリアルタイムアプリケーションをサポートするためにデータサイズを増やす必要が生じた場合においても、Tanzu GemFire なら簡単にリニアに拡張する事が可能です。
以前より、GemFire はスタンドアローン版、GemFire のライフサイクル管理においてBOSH の利用をベースとしたfor VMs (旧Pivotal CloudCache) を提供させて頂いておりましたが、昨年末にVMware Tanzu™ GemFire® for Kubernetes がリリースされました。
今回ご紹介させて頂くGemFire 含め、Tanzu SQL (Postgres / MySQL) に関しても、Kubernetes 対応したプロダクトがGA され、Tanzu ポートフォリオの中において、データ部分まで含めた形で提供出来る様になってきております。
GemFire for Kubernetes のメリット
GemFire for Kubernetes ですが、公式のドキュメント「Prerequisites and Supported Platforms」に記載のある通り、Kubernetes v1.16 以上の環境であればインストールする事が出来ます。Kubernetes の要件さえ満たせば、環境問わずGemFire をどのKubernetes 環境でも利用出来、お試し頂く事が可能であり、利用開始時のハードルが低い事がメリットとして上げられます。
* 4/27 現在においては、サポートされるKubernetes プラットフォームとしては以下になります。実際に商用環境でのご利用を検討される際は、都度弊社にお問い合わせ頂ければと思います。
- Google Kubernetes Engine (GKE)
- Tanzu Kubernetes Grid (TKG)
- Tanzu Kubernetes Grid Integrated Edition (TKGi)
また、GemFire for Kubernetes 導入ステップとしては、以下のように先ずはKubernetes クラスタにGemFire Operator をHelm チャートを用いてインストールします。
GemFire Operator がインストール出来たら、GemFire クラスタのマニフェストファイルを作成し、GemFire クラスタをインストールします。
GemFire Operator を経由し、locator
とserver
という2つのStatefullSet
リソースが作成され、Kubernetes クラスタ上にGemFire クラスタが作成されます。
Kubernetes のエコシステムの中でGemFire クラスタの作成やDay2 と言われるクラスタのバージョンアップやノードのスケールアウト等の運用時に必要なオペレーションを実施する事が出来、GemFire クラスタの運用に関して、Kubernetes 以外の新たな学習コストなく始められる事も、GemFire for Kubernetes のメリットとして上げられます。
GemFire for Kubernetes のインストールとオペレーション
GemFire for Kubernetes のインストールは以下の公式のドキュメントに沿ってインストールしていきます。
本ブログではインストール時の詳細は割愛致しますが、前述の通りGemFire Operator のインストール、GemFire クラスタのインストールが完了すると以下の様なリソースがKubernetes クラスタ上で確認出来ます。
GemFire クラスタへのアクセス
GemFire クラスタをインストールした後は、GemFire クラスタにアクセスするためのLoadBalancer リソースを作成します。
type: LoadBalancer
リソースが作成されれば、GemFire クラスタにアクセスする準備が出来ています。locator
Pod にアクセスし、gfsh CLI を実行すると、GemFire を操作するためのシェルが立ち上がります。あとは、gfsh CLI のお作法に従って、GemFire クラスタを操作する事が可能です。
GemFire クラスタのスケールアウト
「Update the Tanzu GemFire Cluster」に手順がありますが、GemFire クラスタのマニフェストファイルを更新し、kubectl コマンドで適用する事でlocator
の数やserver
の数を簡単に変更する事が可能です。
前述のGemFire クラスタのマニフェストでは、spec.locators.replicas
とspec.servers.replicas
を指定していませんでしたが、以下のようにGemFire クラスタのマニフェストファイルを更新し、kubectl apply -f
で適用する事で、簡単にGemFire クラスタをスケールアウトさせる事が可能です。
GemFire for Kubernetes の監視
弊社Observability ソリューションであるTanzu Observability を利用すると、GemFire for Kubernetes の監視を簡単に行う事が可能です。
GemFire クラスタが稼働するKubernetes クラスタをTanzu Observability にIntegration する設定を行うと、GemFire クラスタ側での追加設定無く、以下の様なダッシュボードがOut of the box(OOTB) で利用可能になります。これにより、GemFire クラスタのインストールと同時に、GemFire クラスタのリソース使用状況、キャッシュヒット率等、GemFire クラスタの監視に必要な情報を確認する事が可能になります。
商用環境において、GemFire for Kubernetes をご利用される場合、GemFire クラスタの監視は必須であります。Tanzu Observability であれば、GemFire クラスタ監視のダッシュボードをOOTB で簡単に利用開始する事が出来、かつカスタマイズ機能も豊富に提供しております。GemFire for Kubernetes を本格的に利用させる場合は、Tanzu Observability も合わせてご検討頂ければと思います。
まとめ
GemFire for Kubernetes に関してご紹介させて頂きました。
Kubenetes v1.16 以上の環境があれば、GemFire クラスタをインストールし、お使い頂く事が出来きます。ご興味があれば是非、GemFire for Kubernetes をお試しください。