Статьи

Управление контейнером с Rancher на RancherOS

У кого-то в  Ранчере  должен быть  скот  в центре Аризоны или в отдаленной Калифорнии. Или один из их венчурных капиталистов может быть в Монтане, сидя на большом ранчо, пока  Докер  ест мир ИТ. В любом случае, этот пост является коротким и сладким, как овощи, а не как крупный рогатый скот (TFW), и о  Rancher  и недавно анонсированной  RancherOS . Проверьте объявление ранчеро  .

Давайте будем коротки, не так ли? Docker хорош, но это демон, работающий на одном хосте. Поскольку вы хотите масштабировать и управлять несколькими серверами, вам нужно что-то для управления контейнерами Docker на нескольких хостах. Появляется несколько решений, конечно, Docker  Swarm,  но также  KubernetesLattice  от Cloudfoundry и даже Apache  MesosRancher  — одно из таких решений для управления кластерами для Docker. Он делает несколько приятных вещей, таких как кросс-хост-соединение между контейнерами через пользовательское сетевое наложение (например, Flannel, Weave, Socketplane).

Вы можете использовать Rancher с любым набором хостов Docker. Однако начали появляться операционные системы нового типа: оптимизированная для контейнеров ОС. Или просто достаточно операционной системы для Docker; CoreOS, ProjectAtomic от RedHat, Ubuntu Snappy вписываются в это пространство. Они стремятся обеспечить непрерывное обновление операционной системы и запускать все в ней как контейнер. Нет больше менеджера пакетов, волшебство случается, и вы всегда в курсе. Упакуйте все свои приложения в контейнеры и используйте Rancher для запуска их в своем кластере. Конец истории. Подождите, входит в rancherOS.

Rancheros

Пара строк 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

Следующий логический вопрос, конечно же … барабанная дробь … Могу ли я запустить ранчо на ранчеро. RinR не R & R? И ответ звучит да. Я ожидаю, что Rancher выйдет в ближайшие недели, может быть, месяцы с твердым продуктом, основанным на двух.

rancherOS — это супер минималистичная ОС, предназначенная исключительно для Docker. Он идет дальше, а также запускает системные сервисы как контейнер. И я позволю @ibuildthecloud рассказать о systemd и Docker как PID 1.

[rancher@rancher ~]$ sudo system-docker ps
CONTAINER ID        IMAGE               COMMAND                ...      NAMES
32607470eb78        console:latest      "/usr/sbin/console.s   ...      console             
d0420165c1c0        userdocker:latest   "/docker.sh"           ...      userdocker          
375a8de12183        syslog:latest       "/syslog.sh"           ...      syslog              
d284afd7f628        ntp:latest          "/ntp.sh"              ...      ntp   

фермер

Если вы хотите попробовать RinR, посмотрите сборник пьес Ansible, который   я только что сделал. Вы можете использовать его для развертывания кластера экземпляров rancherOS в AWS и использовать один из них в качестве главного, а другой — в качестве рабочих. Мастер работает в контейнере:

$ docker run -d -p 8080:8080 rancher/server 

И рабочие могут зарегистрироваться у своего агента:

$ sudo docker run --rm -it --privileged -v /var/run/docker.sock:/var/run/docker.sock rancher/agent http://<master_ip>:8080

Как только все работники зарегистрированы, вы можете использовать пользовательский интерфейс или API для запуска контейнеров.

Как вы можете видеть, я проверил это в масштабе сети с двумя узлами ?

Заметки

In this very early super bleeding-edge testing phase (as you can tell in my good spirit today), I did find a few things that were a bit strange. Considering rancherOS was announced just last week, I am sure things will get fixed. Cloud-init support is minimal, not able to add second network interface, support for both keypair and userdata at the same time seems off. The UI was a bit slow to start and building the overlay was also a bit slow. It is also possible that I did something wrong.

Overall though, rancher is quite nice. It builds on years of experience in the team with developing CloudStack and operating clouds at scale and applies it to the Docker world. It does seem that they want to integrate with and provide the native Docker API, this would mean that users will be able to use Docker machine to add hosts to a rancher cluster, or even Docker swarm and that launching a container would also be a docker command away. How that differentiates from Swarm itself is not yet clear, but I would bet we will see additional networking and integration services in Rancher. Blurring the lines with Kubernetes ? Time will tell.