1. Rancher
1.1. Rancher 和 Kubernetes 有什么区别
Rancher 有分为 v1 和 v2 版本, 都是提供容器调度与编排, 不同之处在于在 k8s 盛行之前有许多人都搞过容器编排, 所以 rancher v1 上会有几种不同的编排模式, 例如 cattle ,swarm,kubernetes。从这里可以看出 Rahcner v1 时代, 它给自己的定位是各种编排工具的上层, 也就是 k8s 的上层, 然后你再通过它去管理 k8s。因为 k8s 后来发展得势不可挡, 所以 Rancher v2 应运而生, 移除了其他类型的编排工具, 只剩下 k8s。所以总结一下, 两者的关系是 Rancher 对 k8s 进行了功能的拓展与实现了和 k8s 集群交互的一些便捷工具, 包括执行命令行, 管理多个 k8s 集群, 查看 k8s 集群节点的运行状态等等。Rancher 这种做法放在云厂商就是: 阿里云的 k8s 服务, 谷歌的 k8s 服务亚马逊的 k8s 服务, 他们都以 k8s 为底层核心调度系统, 然后开发一些方便企业开发运维的工具。所以企业内部测试环境一般可以直接使用 rancher 去管理 k8s 或者使用 Rancher 去初始化一个 k8s 集群。如果要自建私有云, 也可以考虑使用 Rancher, 当然云厂商也有私有云的容器集群解决方案, 可自行选择。
最开始的区别显而易见:
- K8s: 实实在在的 Docker 容器编排工具, 包括对于 Docker 容器网络的管理, 资源的管理等, 它解决了多容相互依赖, 相互隔离的场景需求, 与此类似的还有 Swarm 等。早期的 K8s 甚至没有界面, 完全命令行交互, 安装也较为繁琐, 并不是非常友好。
- Rancher: 更上层管理框架, 更像是一个微容器云的管理平台, 它支持容器编排框架的选择 (早期版本), 可见可以把它看作 K8s 更上层的管理平台, 界面化做的更好, 它让对于 K8s 的操作和 K8s 之外的操作都变得更加友好。我们这边做过 Rancher 的相关实践, 比较推荐非线上环境进行使用, 例如测试, 离线计算等。而且安装起来非常简单。