Kuby-core: 支持最新版本的kubedb

创建于 2021-04-28  ·  2评论  ·  资料来源: getkuby/kuby-core

不幸的是,AppsCode 的优秀人员(kubedb 的制造商)现在要求每个用户获得免费许可证。 虽然 kuby 可以做一些棘手的事情来自动获得许可证,但这并不特别道德(甚至可能合法?)我能想到的唯一解决方案是在集群设置期间将用户指向 AppsCode 网站,然后提示他们许可证文件的内容。 显然这并不理想,但我认为这是我们唯一的选择,如果我们想继续使用 kubedb 和 kuby(我认为我们这样做 - 这太棒了)。

enhancement help wanted

所有2条评论

好的,这里有一些额外的上下文。 事实证明,困难的部分不是以编程方式获取许可证(这是可能的,我们只需要提示人们输入许可证服务器令牌、电子邮件地址等)。 困难的部分是_升级_kubedb 运算符和各个数据库。 卸载 v0.12 本身就很困难,因为您显然不想删除任何现有的数据库实例,但我最终让它工作了。 幸运的是,使用 Helm 安装 v0.18(撰写本文时的最新版本)非常容易……但该死的,升级已经_已经_运行的现有 Postgres 或 MySQL 实例(零停机时间)非常困难。 以下是我(几乎)为 Postgres 工作的步骤:

  1. 确保为逻辑复制设置现有数据库,这需要更改 WAL 级别(预写日志)。 设置 WAL 级别需要重新启动 pg,因此最简单的方法是将副本数设置为 > 1,同时告诉 kubedb 使用额外的配置,这将导致重新启动。 无论如何,您都需要多个副本,因此重新启动不会导致停机。
  2. 卸载旧版本的 kubedb 操作符并安装新版本,特别注意不要关闭现有的数据库实例。 这可能有点棘手,因为如果仍有 Postgres 实例在运行,k8s 相当不愿意删除Postgres CRD。 说得通。 幸运的是,有一些方法可以诱使 k8s 做你想做的事。
  3. 使用 WAL = logical 建立一个新的 postgres 实例,并在新旧数据库之间创建必要的 pub/sub,以便将旧数据库中的任何记录复制到新数据库中。 如果您用于从 rails 访问数据库的用户_isn't_ postgres (Kuby 默认使用root ),请注意在新数据库中postgres用户提供密码. 这是必要的,因为我认为这是 kubedb 初始化脚本中的一个错误。 这个新的数据库显然必须与旧的名称不同,这是一个问题。 db 的名称决定了 rails 连接的 DNS 名称,我们无法真正更改。 唔...
  4. 部署 rails 应用程序并以某种方式将其指向新的数据库服务。
  5. 删除旧数据库
  6. 利润

我目前正试图弄清楚如何轻松地将 rails 应用程序指向新的数据库服务。 服务 URL 本质上是硬编码的,不能动态更改。 此外,新的数据库服务不能与现有的同名,因此我们必须将“正确”的服务存储在某个地方(可能是部署上的注释?)并在每个... docker build cuz 上查阅它那是我们重写database.yml的时候吗? 啊。

另一种解决方案可能是使用某种代理,该代理可以动态地将流量指向一个或另一个服务,例如负载均衡器,但位于服务之上。

虽然 kuby 可以做一些棘手的事情来自动获得许可证,但这并不让人觉得特别道德(甚至可能是合法的?)

Tamal 是个好人,我认为他根本不会介意,只要您向用户公开正在发生的事情的细节,这样当临时许可证在月底到期时他们就不会感到惊讶。 (?许可证到期时会发生什么,我现在想知道?如果这意味着备份已停止,那可能会很糟糕;如果这意味着其他事情开始失败,也可能会很糟糕......如果这意味着您无法为现在,在更新许可证之前,这可能还不错。)

外部数据库已经有了一个选项,因此用户可以选择继续使用 KubeDB 或以另一种方式将数据库掌握在自己手中,坦率地说,今天这不是一个难题,除非您使用的不是支持您需要的数据库。

感谢您介绍升级所需的内容! 我有我的 KubeDB 许可证,它被慷慨地授予 Team Hephy 用于我们的生产集群,并且我有需要升级的旧数据库,这些数据库从未从 KubeDB 启动或托管; 我获得了学习使用数据库备份的许可证,我同时拥有 PostgresQL 和 MariaDB,tl;博士我在这方面也为我完成了工作。

我现在正在学习如何在我的家庭实验室集群中运行适当的存储 CSI 驱动程序,我希望这将对我处理数据库的方式产生巨大的影响,并改善我的“生产”集群的灾难恢复属性。 🎉

从长远来看,Kuby 也可能成为 KubeDB 的一个很好的销售渠道。 不知道你会怎么想!

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

hovancik picture hovancik  ·  5评论

traels picture traels  ·  13评论

kingdonb picture kingdonb  ·  6评论

ma11hew28 picture ma11hew28  ·  3评论

vangberg picture vangberg  ·  3评论