ETCD数据迁移

本文阅读对象为想要将Rainbond平台rbd-etcd切换至外部etcd的相关人员。

  • 在k8s master节点创建secret

本文中将要切换的ETCD为根据Rainbond官方文档安装的k8s集群ETCD,需要TLS认证,所以在这里将相关证书创建为k8s集群secret资源供Rainbond组件连接时使用;其他方式搭建的k8s集群请根据自身需要进行创建。

kubectl create secret generic etcd-tls-secret --from-file=/etc/kubernetes/ssl/kubernetes.pem   --from-file=/etc/kubernetes/ssl/kubernetes-key.pem    --from-file=/etc/kubernetes/ssl/ca.pem   -n rbd-system

修改ETCD连接地址

修改Rainbond各组件连接ETCD的地址。

  • rbd-api
$ kubectl edit deploy rbd-api -n rbd-system
spec:
containers:
- args:
- --etcd=https://172.24.206.76:2379
- --etcd-ca=/etc/kubernetes/ssl/ca.pem
- --etcd-cert=/etc/kubernetes/ssl/kubernetes.pem
- --etcd-key=/etc/kubernetes/ssl/kubernetes-key.pem volumeMounts:
- mountPath: /etc/kubernetes/ssl
readOnly: true
name: etcd-tls volumes:
- name: etcd-tls
secret:
secretName: etcd-tls-secret

相关解释:

将启动参数 --etcd 地址修改为要切换的ETCD地址,其他参数为指定ETCD的TLS证书文件地址,并且挂载使用上面创建好的sercret;以下组件都与之类似。

  • rbd-mq
$ kubectl edit deploy rbd-mq -n rbd-system
spec:
containers:
- args:
- --etcd-endpoints=https://172.24.206.76:2379
- --etcd-ca=/etc/kubernetes/ssl/ca.pem
- --etcd-cert=/etc/kubernetes/ssl/kubernetes.pem
- --etcd-key=/etc/kubernetes/ssl/kubernetes-key.pem volumeMounts:
- mountPath: /etc/kubernetes/ssl
readOnly: true
name: etcd-tls volumes:
- name: etcd-tls
secret:
secretName: etcd-tls-secret
  • rbd-webcli
$ kubectl edit deploy rbd-webcli  -n rbd-system
spec:
containers:
- args:
- --etcd-endpoints=https://172.24.206.76:2379
- --etcd-ca=/etc/kubernetes/ssl/ca.pem
- --etcd-cert=/etc/kubernetes/ssl/kubernetes.pem
- --etcd-key=/etc/kubernetes/ssl/kubernetes-key.pem volumeMounts:
- mountPath: /etc/kubernetes/ssl
readOnly: true
name: etcd-tls volumes:
- name: etcd-tls
secret:
secretName: etcd-tls-secret
  • rbd-worker
 $ kubectl edit deploy rbd-worker  -n rbd-system
spec:
containers:
- args:
- --etcd-endpoints=https://172.24.206.76:2379
- --etcd-ca=/etc/kubernetes/ssl/ca.pem
- --etcd-cert=/etc/kubernetes/ssl/kubernetes.pem
- --etcd-key=/etc/kubernetes/ssl/kubernetes-key.pem volumeMounts:
- mountPath: /etc/kubernetes/ssl
readOnly: true
name: etcd-tls volumes:
- name: etcd-tls
secret:
secretName: etcd-tls-secret
  • rbd-chaos
$ kubectl edit ds rbd-chaos  -n rbd-system
spec:
containers:
- args:
- --etcd-endpoints=https://172.24.206.76:2379
- --etcd-ca=/etc/kubernetes/ssl/ca.pem
- --etcd-cert=/etc/kubernetes/ssl/kubernetes.pem
- --etcd-key=/etc/kubernetes/ssl/kubernetes-key.pem volumeMounts:
- mountPath: /etc/kubernetes/ssl
readOnly: true
name: etcd-tls volumes:
- name: etcd-tls
secret:
secretName: etcd-tls-secret
  • rbd-gateway
$ kubectl edit ds rbd-gateway  -n rbd-system
spec:
containers:
- args:
- --etcd-endpoints=https://172.24.206.76:2379
- --etcd-ca=/etc/kubernetes/ssl/ca.pem
- --etcd-cert=/etc/kubernetes/ssl/kubernetes.pem
- --etcd-key=/etc/kubernetes/ssl/kubernetes-key.pem volumeMounts:
- mountPath: /etc/kubernetes/ssl
readOnly: true
name: etcd-tls volumes:
- name: etcd-tls
secret:
secretName: etcd-tls-secret
  • rbd-node
 $ kubectl edit ds rbd-node  -n rbd-system
spec:
containers:
- args:
- --etcd-endpoints=https://172.24.206.76:2379
- --etcd-ca=/etc/kubernetes/ssl/ca.pem
- --etcd-cert=/etc/kubernetes/ssl/kubernetes.pem
- --etcd-key=/etc/kubernetes/ssl/kubernetes-key.pem volumeMounts:
- mountPath: /etc/kubernetes/ssl
readOnly: true
name: etcd-tls volumes:
- name: etcd-tls
secret:
secretName: etcd-tls-secret
  • rbd-eventlog
$ kubectl edit sts rbd-eventlog   -n rbd-system
spec:
containers:
- args:
- --discover.etcd.addr=https://172.24.206.76:2379
- --discover.etcd.ca=/etc/kubernetes/ssl/ca.pem
- --discover.etcd.cert=/etc/kubernetes/ssl/kubernetes.pem
- --discover.etcd.key=/etc/kubernetes/ssl/kubernetes-key.pem volumeMounts:
- mountPath: /etc/kubernetes/ssl
readOnly: true
name: etcd-tls volumes:
- name: etcd-tls
secret:
secretName: etcd-tls-secret
  • rbd-monitor
$ kubectl edit sts rbd-monitor   -n rbd-system
spec:
containers:
- args:
- --etcd-endpoints=https://172.24.206.76:2379
- --etcd-ca=/etc/kubernetes/ssl/ca.pem
- --etcd-cert=/etc/kubernetes/ssl/kubernetes.pem
- --etcd-key=/etc/kubernetes/ssl/kubernetes-key.pem volumeMounts:
- mountPath: /etc/kubernetes/ssl
readOnly: true
name: etcd-tls volumes:
- name: etcd-tls
secret:
secretName: etcd-tls-secret

验证

1.查看Rainbond各组件是否处于Running状态

$  kubectl get po -n rbd-system
NAME READY STATUS RESTARTS AGE
dashboard-metrics-scraper-754cdcbbb6-pckfj 1/1 Running 1 2d3h
kubernetes-dashboard-57b897f8df-8hkrv 1/1 Running 1 2d3h
nfs-provisioner-0 1/1 Running 1 2d3h
rbd-api-5c4c5d6487-bxqgr 1/1 Running 0 20m
rbd-app-ui-64c7c55995-svg56 1/1 Running 1 2d3h
rbd-app-ui-migrations-k5jwd 0/1 Completed 0 2d3h
rbd-chaos-7qjq6 1/1 Running 0 15m
rbd-db-0 2/2 Running 2 2d3h
rbd-eventlog-0 1/1 Running 0 77s
rbd-gateway-hmxp7 1/1 Running 0 14m
rbd-hub-85b7b94846-kbffc 1/1 Running 1 2d3h
rbd-monitor-0 1/1 Running 0 11m
rbd-mq-5dcfcd9948-wbgrr 1/1 Running 0 19m
rbd-node-2ctjp 1/1 Running 0 13m
rbd-node-8pnql 1/1 Running 0 13m
rbd-node-wpzhd 1/1 Running 0 13m
rbd-repo-0 1/1 Running 1 2d3h
rbd-webcli-6ccd564d98-9kgxd 1/1 Running 0 18m
rbd-worker-6d79d8d5f5-hbt5l 1/1 Running 0 17m

2.在平台基于源码创建组件,测试此过程是否可正常创建组件

验证没有问题后删除rbd-etcd组件

kubectl delete  rbdcomponents.rainbond.io rbd-etcd -n rbd-system

ETCD数据迁移的更多相关文章

  1. Redis实践系列丨Codis数据迁移原理与优化

    Codis介绍 Codis 是一种Redis集群的实现方案,与Redis社区的Redis cluster类似,基于slot的分片机制构建一个更大的Redis节点集群,对于连接到codis的Redis客 ...

  2. 【SQLServer】记一次数据迁移-标识重复的简单处理

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 今天在数据迁移的时候因为手贱遇到一个坑爹问题,发来大家乐乐,也传授新手点经验 迁移惯用就 ...

  3. Entity Framework Code First Migrations--EF 的数据迁移

    1. 为了演示方便,首先新建一个控制台项目,然后添加对entityframework的引用 使用nuget控制台执行: Install-Package EntityFramework 2.新建一个实体 ...

  4. mssql与mysql 数据迁移

    概要: mssql向mysql迁移的实例,所要用到的工具bcp和load data local infile. 由于订单记录的数据是存放在mssql服务器上的,而项目需求把数据迁移到mysql ser ...

  5. 重置EntityFramework数据迁移到洁净状态

    前言 翻译一篇有关EF数据迁移的文章,以备日后所用,文章若有翻译不当的地方请指出,将就点看,废话少说,看话题.[注意]:文章非一字一句的翻译,就重要的问题进行解释并解决. 话题引入 无法确定这种场景是 ...

  6. MySQL数据迁移到SQL Server

    数据迁移的工具有很多,基本SSMA团队已经考虑到其他数据库到SQL Server迁移的需求了,所以已经开发了相关的迁移工具来支持. 此博客主要介绍MySQL到SQL Server数据迁移的工具:SQL ...

  7. MySQL数据迁移到MSSQL-以小米数据库为例-测试828W最快可达到2分11秒

    这里采用.NET Framework 4.0以上版本中新出现的 ConcurrentQueue<T> 类 MSDN是这样描述的: ConcurrentQueue<T> 类是一个 ...

  8. 从零自学Hadoop(16):Hive数据导入导出,集群数据迁移上

    阅读目录 序 导入文件到Hive 将其他表的查询结果导入表 动态分区插入 将SQL语句的值插入到表中 模拟数据文件下载 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并 ...

  9. 从零自学Hadoop(17):Hive数据导入导出,集群数据迁移下

    阅读目录 序 将查询的结果写入文件系统 集群数据迁移一 集群数据迁移二 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephis ...

随机推荐

  1. js配合php原生代码发送ajax请求

    <?php //$a = "{'id':'1'}"; //$b = '{"id":1}'; //$a = iconv('ASCII',"UTF- ...

  2. Python 函数对象的本质

    Python 函数对象本质上是 function 类的实例. 1 从示例说起 def factorial(n): '''return n!''' return 1 if n < 2 else n ...

  3. ConcurrentHashMap线程安全吗?

    前言 没啥深入实践的理论系同学,在使用并发工具时,总是认为把HashMap改为ConcurrentHashMap,就完美解决并发了呀.或者使用写时复制的CopyOnWriteArrayList,性能更 ...

  4. 【老孟Flutter】2020年总结

    2020年是我经历的最不平凡的一年,这一年有遗憾.有收获,有感概,也有庆幸,庆幸自己还活着. 用一句话总结自己的2020,忙并收获着,累并快乐着. <Flutter 实战入门> <F ...

  5. 【mybatis-plus】分页、逻辑删除

    通过mybatis-plus实现分页,也是很简单,插件大法. 一.分页 1.配置分页插件 把分页的插件也配置到统一的配置类里: @Configuration // 配置扫描mapper的路径 @Map ...

  6. 后端Long类型传到前端精度丢失的正确解决方式

    原因:前端js对Long类型支持的精度不够,导致后端使用的Long传到前端丢失精度,比如现在分布式id生成算法"雪花算法"在使用中就会出现问题. 解决方式: 1.后端的Long类型 ...

  7. b站视频下载技术分享

    最近无聊分析了一下b站的视频流协议,简单分享下爬取的流程. 首先先要找到视频对应的aid和cid,aid就相当于av号,而av号对应网页下的每一个视频都有对应的cid,普通视频就是分p,番剧就是集数, ...

  8. 第14章节 BJROBOT karto 算法构建地图【ROS全开源阿克曼转向智能网联无人驾驶车】

    建地图前说明:请确保你的小车已经校正好 IMU.角速度.线速度,虚拟机配置好 ROS 网络的前提进行,否则会造成构建地图无边界.虚拟机端无法正常收到小车主控端发布的话题数据等异常情况!! 1.把小车平 ...

  9. Java图片的灰度处理方法

    通过看网上各种大牛的总结,和自己亲身测试总结一下Java图片的灰度处理方法 (1)我们熟知的图片中的像素点有RGB值. (2)图片灰度化的方式大概分为四种,第一种是最大值法(取颜色RGB中的最大值作为 ...

  10. 我是如何在短期内快速掌握Dubbo的原理和源码的(纯干货)?

    写在前面 上周,在[Dubbo系列专题]中更新了两篇文章<冰河开始对Dubbo下手了!>和<俯瞰Dubbo全局,阅读源码前必须掌握这些!!>,收到了很多小伙伴的微信私聊消息,大 ...