HA Of Rancher

序言

Rancher 默认是使用Etcd做的服务与注册中心, 里面有点绕 根据Etcd在Rancher的应用分为了2类

  • Rancher Service 的 Etcd: 这个etcd是用于存储和发现 RancherService服务集群的,注意并不是我们在Rancher里面创建的业务集群[email protected]
  • 业务集群的Etcd: 这个适用于存储和发现我们在Rancher中创建的业务集群的.重要性肯定没有第一个有用

在 v2.3.x 之前的 Rancher server 版本中,Rancher server 容器中运行了一个定制化的微型 kubernetes 集群。在 v2.3.x 及之后的 Rancher server 版本中,定制化的微型 kubernetes 集群更换成了 K3S 集群。

Rancher server 不管是单节点单容器安装,或者是多节点 Local kubernetes HA 安装,Rancher server 都是通过 kubernetes API 去写入数据,最后数据都是保存在 kubernetes 后端的数据存储服务中(etcd)。单节点是通过内嵌的K3s的Etcd来存储,多节点是通过外部的K8s的etcd来存储.都是通过k8s或者k3s提供的Api来存储,在k8s或者k3s所配置的存储空间里[email protected]

Etcd

etcd是一个可靠的分布式KV存储,其底层使用Raft算法保证一致性,主要用于共享配置和服务发现。etcd是CoreOS公司发起的一个开源项目,其源代码地址为GitHub - etcd-io/etcd: Distributed reliable key-value store for the most critical data of a distributed system

目前提供配置共享和服务发现功能的组件还是比较多的,其中应用最广泛、大家最熟悉的应该就是ZookKeeper了,很多开源项目都在不同程度上依赖了ZooKeeper,例如,Dubbo、Kafka。在Golang社区中,etcd是唯一一个可以媲美ZooKeeper的组件,在有些方面,etcd甚至超越了ZooKeeper,给开发者眼前一亮的感觉。

etcd作为一个优秀的分布式KV存储产品,其底层的etcd-raft模块实现了Raft协议,可以帮助开发者快速实现最终一致性功能。etcd以其高性能、易维护、Raft实现等优点,受到越来越多开发人员的青睐,在Golang社区中名声大噪。

单节点单容器

单节点单容器安装的 Rancher server,容器中的定制化微型 kubernetes 集群或者 K3S 集群会一并启动,然后 Rancher server 会去访问微型 kubernetes 集群或者 K3S 集群的 API 地址进行数据的读写,默认数据文件保存在容器的 /var/lib/Rancher 路径下。可以将此目录挂载到主机主机的某个位置,以保证数据不会丢失

Rancher server HA 安装

Local kubernetes 集群 Rancher server HA 安装,这种安装模式下 Rancher server 也是通过 Local kubernetes 集群的 API 地址进行数据读写,通过 Local kubernetes,数据被直接写入到了 kubernetes 后端的 ETCD 服务中。 Rancher HA的安装就没有启动内部的k3s了,且存储是写入到了ETCD中,如果将来要更换成Mysql,也是将kubernetes的存储切换成mysql而已,跟Rancher没有多大的关系了[email protected]

猜你喜欢

转载自blog.csdn.net/cuiyaonan2000/article/details/130558518
HA