当前位置: 首页 > news >正文

Kubeblocks系列2-redis尝试之出师未捷身先死

背景:

上一节,完成了Kubeblocks系列1-安装。现在就想拿一个简单的应用测试一下kubeblocks这个所谓的神器是否好用,是否可以应用与生产!

Kubeblocks系列2-redis尝试

参照官方文档:创建并连接到 Redis 集群

确保 Redis 引擎已启用

kbcli addon list|grep redis
redis                          0.8.1          community   Enabled    true 

查看可用于创建集群的数据库类型和版本

kbcli clusterdefinition listkbcli clusterversion list

image.png
到这里我就有些想要放弃了。因为支持的版本很是有限,不是我理解的和想要的那种!

创建一个namespace

为了保持隔离,本文档中创建一个名为 demo 的独立命名空间

kubectl create ns demo

image.png

创建一个Standalone单实例redis

我这里就是为了简单测试一下kubeblocks去管理数据库是否可行,就在这里搭建一个简单的单实例redis:

 kbcli cluster create redis --mode standalone  redis -n demo

image.png
注意:执行kbcli cluster create redis -h, 可以查看创建 Redis 集群的选项和默认值。
image.png
等待redis创建成功并测试连接:

kbcli cluster list -n demo
kubectl get pods -n demo

image.png
使用kbcli测试redis连接:

kbcli cluster connect redis -n demo

image.png
到了这里我基本就放弃了。对我来说很不严谨。这不符合我的认知。
继续尝试用本地redis-cli连接一下redis实例。毕竟用户的应用场景是使用redis客户端连接实例而不是kbcli!

kubectl get secret -n demo
kubectl get secrets -n demo redis-redis-account-default -o jsonpath='{.data.\username}' | base64 -d
kubectl get secrets -n demo redis-redis-account-default -o jsonpath='{.data.\password}' | base64 -d

image.png
redis-cli连接也没有什么大问题:
image.png

放弃的原因:

支持的版本有限

以redis 为例,仅仅支持7.0.6版本,不符合作为一个数据中心的设计吧:
image.png
这个我也github提交了issue。给我的回复是kubeblocks0.9版本会支持更多的应用的版本:
image.png

版本的一致性 and镜像的官方性

以redis为例,安装的版本是7.0.6 but info server打印出来的版本是7.0.9.这点让我很不爽。我对kubeblocks的官方镜像产生了不信任,这里我希望竟然能直接使用官方的镜像 或者bitnami仓库的镜像这种。现在的镜像让我感到不信任:
image.png

其他问题

在使用kbcli的同时必须穿插使用kubectl命令,我希望能减少对kubectl的依赖。同时,我更希望能通过kbcli直接创建和管理namespace,增设安全措施防止误删。

总结:

我还是坚信数据服务可以部署在容器中,但是现阶段的kubeblocks对于我来说还是一个玩具,成熟度较低。希望在以后成熟的版本中再进行深度的学习试用。现在这种阶段我还是宁愿试用bitnami的各种helm安装了

相关文章:

  • (六)DockerCompose安装与配置
  • 【MATLAB】基于EMD-PCA-LSTM的回归预测模型
  • Object类,你学会了吗?
  • 彻底搞懂JavaScript原型和原型链
  • CCF-GESP 等级考试 2023年12月认证C++一级真题解析
  • itext5生成pdf demo应用
  • 清空了电脑回收站,之前的文件还能否恢复?
  • 番外篇 | YOLOv5更换主干网络之Conformer:首个CNN + Transformer的backbone模型
  • 15:00面试,15:08出来,面试问的有点变态。。。。
  • 04. Redis 配置文件
  • 计算电磁学:FDFD算法总结
  • sklearn监督学习--k近邻算法
  • 什么是安全左移如何实现安全左移
  • 工地升降机AI人数识别系统
  • 键盘盲打是练出来的
  • #Java异常处理
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • Android开源项目规范总结
  • Elasticsearch 参考指南(升级前重新索引)
  • js 实现textarea输入字数提示
  • Laravel Mix运行时关于es2015报错解决方案
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • vue脚手架vue-cli
  • vue数据传递--我有特殊的实现技巧
  • 关于extract.autodesk.io的一些说明
  • 前端学习笔记之观察者模式
  • 学习ES6 变量的解构赋值
  • 正则表达式
  • 智能合约开发环境搭建及Hello World合约
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • # 飞书APP集成平台-数字化落地
  • # 计算机视觉入门
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #include
  • #php的pecl工具#
  • #window11设置系统变量#
  • $(selector).each()和$.each()的区别
  • (12)Hive调优——count distinct去重优化
  • (2)nginx 安装、启停
  • (26)4.7 字符函数和字符串函数
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (js)循环条件满足时终止循环
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (二)原生js案例之数码时钟计时
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET delegate 委托 、 Event 事件,接口回调
  • .net 发送邮件
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .net分布式压力测试工具(Beetle.DT)
  • @PostConstruct 注解的方法用于资源的初始化
  • [000-01-011].第2节:持久层方案的对比