文章插图
【多云容器编排 Karmada-Operator 实践】如上图所示,主要是karmada控制平面生命周期管理,对比当前社区的部署工具我们如下优化:
- 标准化证书管理,主要是用openssl生成证书 。其中etcd和Karmada证书单独分开维护,和k8s集群证书命名相同,方便接入我们的监控 。
- Karmada-apiserver支持外部负载均衡,不限于当前的k8s service提供的负载均衡 。
- 更灵活的升级策略,支持单独组件升级和全量升级 。
- 更丰富的全局变量定义 , 计划支持组件配置变更等 。

文章插图
etcd集群是Karmada的元数据集群,生产中需要保证etcd集群高可用和故障恢复等 。如上图展示了etcd集群必要的生产要素 , 如自动扩缩容、升级、备份和etcd集群的故障恢复 。自研了基于ansible的plugins和library, 实现etcd集群管理能力如下:
- 添加member到存在的etcd集群 。
- etcd集群删除member 。
- etcd集群的备份,比如支持cephfs的数据备份 。
- etcd集群故障恢复 。
- etcd集群健康状态查询 。
- Karmada集群所在的机房裁撤,需要备份etcd数据,迁移到新的Karmada集群 。
- 期望通过Karmada-Operator管理Karmada集群,只需备份etcd数据,实现etcdRestore功能即可 。
- Karmada集群故障,可以通过etcd备份数据,结合etcdRestroe实现故障恢复 。

文章插图
member集群的生命周期管理主要有注册和注销 , 上图是执行的流程 。为了处理member集群的注册和注销 , 这里会动态的生成inventory 。Ansible Inventory 是包含静态 Inventory 和动态 Inventory 两部分的,静态 Inventory 指的是在文件中指定的主机和组,动态 Inventory 指通过外部脚本获取主机列表,并按照 ansible 所要求的格式返回给 ansilbe 命令的 。
这里Karmada-Operator基于k8s的CR实现了动态inventory plugins , 主要通过解析KarmadaDeployment的members定义去动态的生成inventory 。这里添加了add-member和del-member 2个角色, add-member里集群会被注册到Karmada控制平面,del-member里的集群会被从Karmada控制平面注销,这样就可以并发的注册和注销多个member集群 。同时也可以提供ssh登录模式,方便后期扩展 。
三、Karmada-Operator的CI介绍

文章插图
为了更好的提高开发人员的体验,计划提供Karmada-Operator的CI构建能力 。这里在K8s集群里部署github的self-hosted Runner和kubevirt 。
- 用户在github上提交PR
- 触发github Actions , 我们在self-hosted里定义的流程
- 执行语法和单元测试
- 通过kubevirt创建vm
- 在多个vm里部署1个host和2个member集群
- 部署Karmada和添加member集群
- 执行Karmada e2e和bookfinfo案例测试
- 语法测试:
- ansible-lint
- shellcheck
- yamllint
- syntax-check
- pep8
- 集群部署测试:
- Karmadactl、charts、yaml和二进制部署和所有配置项安装测试
- join/ unjoin member 集群
- 升级Karmada
- etcd集群的备份和恢复
- 功能测试:
- Karmada e2e测试
- 创建bookinfo案例
- 性能测试:
我们主要通过kubemark组件模拟了多个2000节点的member集群进行了性能测试,其中一个测试案例是集群故障转移,结论是4w个无状态pod能够在15分钟完成故障迁移,有机会可以分享我们的性能测试 。四、总结通过社区的调研和vivo的实践 , 最终确定了Karmada-Operator方案设计 。Karmada-Operator具有高度可扩展性、可靠性、更直观地编写操作逻辑和开箱即用等特点,我们相信通过这种高度可扩展的声明式、自我修复云原生系统管理Karmada,为我们全面切换到Karmada去管理业务提供了强有力可靠保障 。
推荐阅读
- Docker容器获取宿主机信息
- 怎么去除蜂蜡里面的杂质 容器上的蜂蜡怎么清洗
- 容器苗直插生根法原理 容器苗直插生根法
- 水培吊兰自制营养液 吊兰的营养液怎么做
- 玻璃钢怎么修复最好 玻璃钢怎么修复
- 超级电容器分类 电容器分类
- 培育容器苗你有准备吗英语 培育容器苗你有准备吗
- 如何制作抹茶泡芙视频 如何制作抹茶泡芙
- 多云的用英语怎么说读 多云的用英语怎么说
- 价格翻倍的容器苗栽培技术的简单介绍