Rancher高可用得最佳实践到底是什么?

看了官方文档说docker安装rancher 不能用于生产环境?
那如何部署高可用得k8s集群?
如果还是要用k8s自带得命令行, 那rancher有啥用?

Single Docker 模式仅用于测试和简单使用,不适合长期运行。

Rancher server依赖kube api-server进行元数据和业务逻辑的处理,所以Single Docker内置了一个K3s来提供kube-api接口。

Rancher HA安装时,你通常需要准备一个三节点的Kubernetes集群,并通过helm chart方式安装rancher。

Rancher安装完毕后,你就可以使用它来创建下游集群来支撑你的业务。此时,Local集群只用于支撑Rancher server运作,不适合和业务程序混在一起。

不确定,你所说的还要用命令行是什么样的场景。

文档中对此有详细的说明:Rancher Docs: Install/Upgrade Rancher on a Kubernetes Cluster

rancher k3s 不是说可以两台就能达到高可用嘛?

“不确定,你所说的还要用命令行是什么样的场景。” 这个我看官方是建议先搭建k8s 集群, 然后再到这个集群上面搭建rancher吗? 那就是我得先用k8s自己得命令部署好集群, 才能再用rancher, 感觉这样rancher没啥用了

这个看官方手册即可,我已经在生产环境用上了

local k8s如果是k3s用2台就可以了,如果是RKE,就是3台虚拟机(只要是考虑etcd的高可用)。

主要是看官方文档不连续, 一下就跑题了, 我理解得高可用是rancher 和 k8s 都能够高可用, 我理解得官方文档得意思是, 如果rancher要高可用得部署到k8s集群上面, 不就是得先把k8s集群搭好,再到这个上面搭建rancher 集群, 再来管理k8s嘛? (还是说我理解错误了?) 那这样我何必再安装rancher呢 :upside_down_face:

Rancher是多集群管理,local集群只用于运行Rancher管理平面组件。Rancher安装完毕后,你可以用它创建或者连接其他下游集群。

rancher不是k8s的替代方案,它的理念是简化k8s的管理。当你的生产环境有各种cpu架构的集群,它就显得非常便利。比如对RKE集群的备份恢复,提供应用仓库等。 建议对能把所有官网文档看一遍,并且要求有k8s基础,要不会折腾。

1 个赞

单机 docker run 的形式只适合测试和学习用,不适合生产,所以你的建议不生效。

其实很好理解,rancher 的高可用依赖于 K8s 集群,需要安装在 K8s 集群上。而,Rancher 是一个集群管理工具,在 K8s 集群上安装高可用 rancher 之后,rancher 可以反向管理这个 K8s 集群。

所以我还是得先按照k8s 官方文档先把k8s 部署起来, 然后再到这个k8s 集群中部署rancher, 反过来管理这个k8s ? 还是说我可以直接准备3台服务器, 然后部署好rancher, 再来创建这个k8s集群?

我理解的是首先要有2个节点通过k3s安装rancher实现rancher高可用,然后再另外找3个以上的节点,通过rancher中自定义集群方式创建下游集群,用于部署业务应用,相当于是总共有两个集群。local 集群是为了 rancher 高可用。

@大虫 HA部署时,Local集群可以是:

  • Rancher自己出品的K8s发行版 RKE K3s RKE2
  • 公有云托管集群(ACK EKS AKS等)
  • 社区的kubeadm集群
  • 其他k8s发行版

其中前两点是我们优先推荐的。文档中也说明的比较清晰:Rancher Docs: Install/Upgrade Rancher on a Kubernetes Cluster