#1 データベース on Kubernetesの現在地点

本記事はPostgreSQL on Kubernetes Advent Calendar 2018の1日目です。
正確にいうと PostgreSQL on Kubernetes 2018(全部俺) の第一回です。
今日は初日になりますので、「どんな話なの?」「なんでデータベースをk8sにのせるの?」といった辺りの概要をお話したいと思います。

太长;没看。

    • Kubernetesは既に標準プラットフォーム

 

    • データベースもこれをフォローしておかないと、デバイス対応で困ったりすると思うよ。

 

    すでにPostgreSQL on k8sとかMySQL on k8sの事例もあるよ。

Kubernetes周围的情况

昨今はねこも杓子もコンテナの時代になりつつありますが、その界隈の覇権がDockerからKubernetesに完全に移ったように見えます。
これはただ単に抽象化レイヤの中で上位に移行したというよりも、コンテナを取り巻くエコシステムの中心がKubernetesに移ったということを意味しています。

これはデータベース on Kubernetesにおいても重要な意味を持ちます。
データベースの性能向上にはその時代の最新のデバイス採用が欠かせませんが、それらは今後Kubernetesからの利用を前提とする可能性がある、ということです。

例えば、2018年に入ってKubernetes on NVIDIA GPUsという発表がなされました。
リンクのスタック図にあるように、元々NVIDIAのGPUはDocker対応を発表していましたが、Kubernetes対応を発表することで、巨大なクラスタによる機械学習等に用途を拡大しようとしています。

他にも以下のようなデバイスが今後Kubernetes対応していくことは十分に考えられ、データベースとしてもそのエコシステムを無視することはできなくなるもとの考えられます。

    • NVMeストレージ ※KumoScaleなど

 

    • 高帯域イーサやInfiniBandなど

 

    • FPGAなどのアクセラレータ系

 

    SCM(Storage Class Memory)※Intel Optane Memoryなどもこれに相当

将数据库放入Kubernetes的意义是什么?

在目前的情况下,将数据库部署在Kubernetes上是否有意义?

首先,可以考虑到的好处如下。

    インフラ全体としての学習コストの低下

Webシステムを構築することを考えた場合、WebサーバやアプリケーションサーバはKubernetes上に構築(移行)したとしても、データベースはクラスタ外に置くケースが殆どではないでしょうか。
もっといえば、データベースはAmazon RDSのようなマネージドなDBサービスを用いて構築してそこに接続する方式が多いように思います。

この構成自体に問題はなく、むしろ固い方式といえます。

当Advent Calenderでも触れますが、現時点でデータベース on Kubernetesを採用した場合、運用面でのデメリット(というか使い勝手の違い)が多く生じます。
それでもデータベースをKubernetes上で稼動させるメリットがあるとすれば、プラットフォームの統一による管理性の向上や学習コストの低下があげられるでしょう。

2018年時点ではAmazon RDS(やGoogle Cloud SQL)の使い勝手が悪いという人はいないでしょう。
しかし、今後Kubernetesがエコシステムを拡大していくとすれば、早いうちにそちらへインターフェースを統合しておくことのメリットが生まれてきます。

希望通过这次连载,给大家带来思考这些优点的机会,如果能够实现,我个人将十分荣幸。

先例:在Kubernetes上的数据库

さて、ではここからは2018年末時点でのデータベース on Kubernetesとして公開されている事例をいくつか見て行きたいと思います。
なお、ここではデータベース=RDBという意味で使っています。他の方式のデータベースは紹介しておりませんが、ご了承下さい。

茎蔓

Stolon是在Kubernetes上实现的PostgreSQL的示例。
根据下图,Stolon在Kubernetes集群中启动了多个使用流复制的DB实例。
在主节点故障时,其中一台备用节点会被升级为主节点,采用这种配置。

stolon.PNG

Vitess 维特斯

vitess.PNG

我觉得如果你仔细阅读cotoc先生的资料,就能很好地理解细节。

总结

ということで、PostgreSQL on Kubernetes Advent Calender2018の初日は、Kubernetesが現在おかれている状況とデータベースの対応を整理しました。
明日からは今回の主題であるPostgreSQL on Kubernetesのリファレンス・アーキテクチャの解説に入ります。

请多关照。

广告
将在 10 秒后关闭
bannerAds