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 的界限?时间会证明一切。