使用kubedb管理数据库

kubedb 是一个在 Kubernetes 上管理数据库的开源工具,支持 MySQL,Postgres,Redis 等常用数据库。本文记录使用 0.13 版本部署 Postgres 及 Redis 的过程。

安装

使用 helm v3 安装。

安装 kubedb,设置 enableAnalytics=false 关闭信息采集。

安装 kubedb-catalog 之后, kubectl get mysqlversions 等命令才能正常运行。

RBAC问题

apiserver 的 --proxy-client-cert-file=/etc/kubernetes/cert/proxy-client-cert.pem 参数指定的证书的 CN=aggregator,由于缺少 RBAC,创建 kubedb 对象时会报错无法操作 mutators.kubedb.com 和 validators.kubedb.com API(User "aggregator" cannot list resource),需要添加RBAC。

用法

以下示例创建了一个 100G 的 9.6 版本的 Postgres 数据库,提供给 Harbor 使用。

4.0.11 版本的 Redis 示例。

pgAdmin4

使用 pgAdmin4 管理 Postgres 数据库。

  • pgAdmin4 镜像 dpage/pgadmin4:latest
  • 持久化: pv挂载到 /var/lib/pgadmin

可用以下配置项自定义部署:

展望

可以考虑集成 iTop,给用户提供 DBaaS 服务,需要解决数据库备份和数据安全问题。一方面是 kubedb 的快照功能,另一方面是 ceph rbd 的稳定性。另外,还许需要考虑使用方式问题,主要是以下两种方式的选择:

  • 数据库作为一个独立对象让用户直接管理,方便支持一库多用
  • 类似 Volume 那样作为一个挂载对象,可以为每个 APP 添加,可能会造成一定的资源浪费

参考资料

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注