在 RancherOS 上使用 Rancher 进行容器管理

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

Rancher 的某个人一定在亚利桑那州中部或加利福尼亚偏远地区有一些 。或者他们的一位 VC 可能在蒙大拿州的一个大牧场里,而 Docker 正在蚕食 IT 世界。无论如何,这篇文章简短而甜美,像蔬菜而不是牛(TFW),并且是关于 Rancher 和新发布的 RancherOS 的。查看 rancheros 公告

让我们保持简短,好吗? Docker 很棒,但它是一个运行在单个主机上的守护进程。由于您想要扩展和操作多个服务器,因此您需要一些东西来管理跨多个主机的 Docker 容器。一些解决方案正在出现,当然还有 Docker Swarm ,还有 Kubernetes 、Cloudfoundry 的 Lattice ,甚至 Apache Mesos Rancher 是 Docker 的这些集群管理解决方案之一。它做了一些不错的事情,比如通过自定义构建的网络覆盖(想想 Flannel、Weave、Socketplane)进行跨主机容器链接。

您可以将 Rancher 与任何一组 Docker 主机一起使用。然而,一种新型操作系统开始出现:容器优化操作系统。或者只是足够的 Docker 操作系统; CoreOS、RedHat 的 ProjectAtomic 和 Ubuntu Snappy 都适合这个领域。他们旨在为操作系统提供滚动原子升级,并将其中的所有内容作为容器运行。没有更多的包管理器,奇迹发生了,你总是最新的。将所有应用程序打包到容器中,并使用 Rancher 在集群中运行它们。故事结局。等等,进入rancherOS。

Rancher操作系统

几行 bash 说明一切:



 $ git clone https://github.com/rancherio/os-vagrant.git
$ cd os-vagrant
$ vagrant up
$ vagrant ssh
[rancher@rancher ~]$ docker version
Client version: 1.5.0


下一个合乎逻辑的问题当然是……鼓声……我可以在 rancheros 上运行 rancher 吗? RinR 不是 R&R 吗?答案是肯定的。我希望 Rancher 在接下来的几周或几个月内推出基于这两者的可靠产品。


rancherOS 是一个专为 Docker 打造的超级简约操作系统。它更进一步,还将系统服务作为容器本身运行。我会让@ibuildthecloud 谈论 systemd 和 Docker 作为 PID 1。


 $ git clone https://github.com/rancherio/os-vagrant.git
$ cd os-vagrant
$ vagrant up
$ vagrant ssh
[rancher@rancher ~]$ docker version
Client version: 1.5.0



牧场主

如果您有兴趣试用 RinR,请查看我刚刚制作的 Ansible 剧本 。您可以使用它在 AWS 中部署一个 rancherOS 实例集群,并将其中一个用作 master,其他用作 worker。 master 在容器中运行:



 $ git clone https://github.com/rancherio/os-vagrant.git
$ cd os-vagrant
$ vagrant up
$ vagrant ssh
[rancher@rancher ~]$ docker version
Client version: 1.5.0


工人可以向他们的代理人注册:




 $ git clone https://github.com/rancherio/os-vagrant.git
$ cd os-vagrant
$ vagrant up
$ vagrant ssh
[rancher@rancher ~]$ docker version
Client version: 1.5.0



一旦所有工作人员都已注册,您就可以使用 UI 或 API 启动容器。



如您所见,我用两个节点在网络规模上测试了它:)

笔记

在这个非常早期的超级前沿测试阶段(正如你今天可以以我的精神告诉你的那样),我确实发现了一些有点奇怪的东西。考虑到上周刚刚发布了 rancherOS,我相信事情会得到解决。 Cloud-init 支持很少,无法添加第二个网络接口,同时支持密钥对和用户数据似乎已关闭。 UI 启动有点慢,构建覆盖层也有点慢。也有可能是我做错了什么。


总的来说,牧场主还是很不错的。它建立在团队多年开发 CloudStack 和大规模运营云的经验之上,并将其应用于 Docker 世界。看起来他们确实想要集成并提供原生的 Docker API,这意味着用户将能够使用 Docker 机器将主机添加到 Rancher 集群,甚至是 Docker swarm,并且启动一个容器也将是一个 docker命令离开。这与 Swarm 本身有何区别尚不清楚,但我敢打赌我们会 在 Rancher 中看到更多的网络和集成服务 。模糊与 Kubernetes 的界限?时间会证明一切。