zookeeper和etcd有状态服务部署

  • 时间:
  • 浏览:0

k8s rbd volume的实现代码:

缩容的很久,zk集群也自动重启了所有的zk节点,缩容过程如下:

尝试将172.16.20.10节点设置为污点,让zk-0 pod自动迁移到172.16.20.12

因zookeeper 3.4版本的集群配置,是通过静态加载文件zoo.cfg来实现的,就说当zookeeper节点pod ip变动后,时要重启zookeeper集群中的所有节点。

本次试验中使用静态法律依据 部署etcd集群,可能etcd节点变迁时,时要执行etcdctl member remove/add等命令手动配置etcd集群,严重限制了etcd集群自动故障恢复、扩容缩容的能力。我希望,时要考虑对部署法律依据 优化,改为使用DNS可能etcd descovery的动态法律依据 部署etcd,要能让etcd更好的运行在k8s上。

都时要看了zk-0/zk-1都重启了,另一个多多多都时要加载新的zoo.cfg配置文件,保证集群正确配置。

新的zoo.cfg配置文件记录了3个实例:

发现缩容后,etcd-2并这样 从etcd集群中自动删除,可见这俩 etcd镜像对自动扩容缩容的支持并匮乏好。

朋友手工删除掉etcd-2

检查集群健康

kubernetes通过statefulset为zookeeper、etcd等类式有情况报告的应用线程池提供完善支持,statefulset具备以下形态学 :

从etcd.yaml的启动脚本中都时要看出,扩容时新启动一个多多多etcd pod时参数--initial-cluster-state new,该etcd镜像不须支持动态扩容,都时要考虑使用基于dns动态部署etcd集群的法律依据 来修改启动脚本,另一个多多多要能支持etcd cluster动态扩容。

storageclass中引用的ceph客户端用户,时要要有mon rw,rbd rwx权限。可能这样 mon write权限,会意味释放rbd锁失败,无法将rbd镜像挂载到如可让 的k8s worker节点。

查看创建结果

很久在另外一个多多多ceph集群测试这俩 zk pod迁移的很久,经常报错无法释放lock,经分析应该是使用的ceph账号这样 相应的权限,就说意味释放lock失败。记录的报错信息如下:

都时要看了,rbd lock remove操作被拒绝了,意味是这样 权限rbd: releasing lock failed: (13) Permission denied

创建完成很久的po,pv,pvc清单如下:

本文阐述了如可在k8s集群上部署zookeeper和etcd有情况报告服务,并结合ceph实现数据持久化。

使用rbd存储zookeeper节点数据

使用kubectl edit statefulset zk命令修改replicas=3,start-zookeeper --servers=3,

此时观察pod的变化

此时zk-0正常迁移到172.16.20.12

再查看rbd的锁定信息

可能用户取舍删除pv、pvc对象,一起还时要手动删除ceph段的rbd镜像。

zk-0 podrbd的锁信息为

观察zk-0的迁移过程

zookeeper集群节点数从一个多多多扩为3个。

集群节点数为2时,zoo.cfg的配置中定义了一个多多多实例