Меню Рубрики

Установка rancher on docker

Rancher 1.6 Docs

Installing Rancher Server

Rancher is deployed as a set of Docker containers. Running Rancher is as simple as launching two containers. One container as the management server and another container on a node as an agent.

Note: You can get all help options for the Rancher server container by running docker run rancher/server —help .


  • Any modern Linux distribution with a supported version of Docker. RancherOS, Ubuntu, RHEL/CentOS 7 are more heavily tested.
    • For RHEL/CentOS, the default storage driver, i.e. devicemapper using loopback, is not recommended by Docker. Please refer to the Docker documentation on how to change it.
    • For RHEL/CentOS, if you want to enable SELinux, you will need to install an additional SELinux module.

Note: Currently, Docker for Mac is not supported in Rancher.

  • A minimum of 1GB RAM available on the host to be used (excluding OS resources)
  • Accurate time synchronization (e.g. ntpd )
  • MySQL server should have a max_connections setting > 150
    • MYSQL Configuration Requirements
      • Option 1: Run with Antelope with default of COMPACT
      • Option 2: Run MySQL 5.7 with Barracuda where the default ROW_FORMAT is Dynamic
    • Recommended settings:
      • max_allowed_packet >= 32M (default is usually 16M)
      • innodb_log_file_size >= 256M (If you have an existing DB, please make sure to appropriate plan how to change this setting.)
      • innodb_file_per_table=1
      • innodb_buffer_pool_size >= 1GB (For larger installs, 4-8G pools on dedicated MySQL servers)

Note: Currently, MariaDB 10.3 and MySQL 8.x are not supported.

Rancher Server Tags

Rancher server has 2 different tags. For each major release tag, we will provide documentation for the specific version.

  • rancher/server:latest tag will be our latest development builds. These builds will have been val >rancher/server:stable tag will be our latest stable release builds. This tag is the version that we recommend for production.

Please do not use any release with a rc suffix. These rc builds are meant for the Rancher team to test out builds.

Launching Rancher Server — Single Container (non-HA)

On the Linux machine with Docker installed, the command to start a single instance of Rancher is simple.

Rancher UI

The UI and API will be available on the exposed port 8080 . After the docker image is downloaded, it will take a minute or two before Rancher has successfully started and is available to view.

Navigate to the following URL: http:// :8080 . The is the public IP address of the host that is running Rancher server.

Once the UI is up and running, you can start by adding hosts or select a container orchestration from the Infrastructure catalog. By default, if a different container orchestration type is not selected, the environment will be using cattle. After the hosts are added into Rancher, you can start adding services or launch templates from the Rancher catalog.

Launching Rancher Server — Single Container — External Database

Instead of using the internal database that comes with Rancher server, you can start Rancher server pointing to an external database. The command would be the same, but appending in additional arguments to direct how to connect to your external database.

Note: Your database, name and user of the database will already need to be created, but no schemas will need to be created. Rancher will automatically create all the schemas related to Rancher.

Here is an example of a SQL command to create a database and users.

To start Rancher connecting to an external database, you pass in additional arguments as part of the command for the container.

Note: When you connect to an external database cluster which requires a primary key on the tables, you can add —db-strict-enforcing as a parameter to the command. Available as of v1.6.11

Most of the options to pass in also have default values and are not required. Only the location of the MySQL server is required.

Note: In previous versions of Rancher server, we had connected to an external database using environment variables, those environment variables will continue to work, but Rancher recommends using the arguments instead.

Note: When using a proxy between the database server and the rancher/server container, make sure you configure the timeout parameters correctly. Please see the FAQ for more information.

Launching Rancher Server — Single Container — Bind Mount MySQL Volume

If you would like to persist the database inside your container to a volume on your host, launch Rancher server by bind mounting the MySQL volume.

With this command, the database will persist on the host. If you have an existing Rancher container and would like to bind mount the MySQL volume, the instructions are located in our upgrading documentation.

Launching Rancher Server — Full Active/Active HA

Running Rancher server in High Availability (HA) is as easy as running Rancher server using an external database, exposing an additional port, and adding in an additional argument to the command for the external load balancer. Setting up HA requires a minimum of 3 nodes.

Requirements for HA

  • HA Nodes (a minimum of 3 nodes is required):
    • Any modern Linux distribution with a supported version of Docker. RancherOS, Ubuntu, RHEL/CentOS 7 are more heavily tested.
      • For RHEL/CentOS, the default storage driver, i.e. devicemapper using loopback, is not recommended by Docker. Please refer to the Docker documentation on how to change it.
      • For RHEL/CentOS, if you want to enable SELinux, you will need to install an additional SELinux module.
    • Ports that needs to be opened between nodes: 9345 , 8080
    • A minimum of 1GB RAM available on the host to be used (excluding OS resources)

Note: Currently, Docker for Mac is not supported in Rancher.

  • MySQL database
    • A minimum of 1GB RAM available on the host to be used (excluding OS resources)
    • 50 connections per Rancher server node (e.g. A 3 node setup will need to support at least 150 connections)
    • MYSQL Configuration Requirements
      • Option 1: Run with Antelope with default of COMPACT
      • Option 2: Run MySQL 5.7 with Barracuda where the default ROW_FORMAT is Dynamic

Note: Currently, MariaDB 10.3 and MySQL 8.x are not supported.

Recommendations for Larger Deployments

  • Each Rancher server node should have a 4 GB or 8 GB heap size, which requires having at least 8 GB or 16 GB of RAM
  • MySQL database should have fast disks
  • For true HA, a replicated MySQL database with proper backups is recommended. Using Galera and forcing writes to a single node, due to transaction locks, would be an alternative.
  1. On each of your nodes that you want to add into the HA setup, run the following command:

    For each node, the will be unique to each node, as it will be the IP of each specific node that is being added into the HA setup.

    If you change -p 8080:8080 to expose the HTTP port to a different port on the host, you will need to add —advertise-http-port to the command.

    Note: You can get the help for the commands by running docker run rancher/server —help

    Configure an external load balancer that will balance traffic on ports 80 and 443 across a pool of nodes that will be running Rancher server and target the nodes on port 8080 . Your load balancer must support websockets and forwarded-for headers, in order for Rancher to function properly. See SSL settings page for example configuration settings.

    Options for advertise-address

    Option Example Description
    IP address —advertise-address Uses the give IP address
    Interface —advertise-address eth0 Retrieves the IP of the given interface
    awslocal —advertise-address awslocal Retrieves the IP from
    ipify —advertise-address ipify Retrieves the IP from https://api.ipify.org

    Notes on the Rancher Server Nodes in HA

    If the IP of your Rancher server node changes, your node will no longer be part of the Rancher HA cluster. You must stop the old Rancher server container using the incorrect IP for —advertise-address and start a new Rancher server with the correct IP for —advertise-address .

    Running Rancher Server Behind an Elastic/Classic Load Balancer (ELB) in AWS

    We recommend using an ELB in AWS in front of your Rancher servers. In order for ELB to work correctly with Rancher’s websockets, you will need to enable proxy protocol mode and ensure HTTP support is disabled. By default, ELB is enabled in HTTP/HTTPS mode, which does not support websockets. Special attention must be paid to listener configuration.

    If you have issues with ELB setup, we recommend trying the terraform version as this reduces the opportunity to miss a setting.

    Note: If you are using a self signed certificate, please read more about how to configure your ELB in AWS under our SSL section.

    Listener Configuration — Plaintext

    For simple, unencrypted load balancing purposes, the following listener configuration is required:

    Configuration Type Load Balancer Protocol Load Balancer Port Instance Protocol Instance Port
    Plaintext TCP 80 TCP 8080 (or the port used with —advertise-http-port when launching Rancher server)

    Enabling Proxy Protocol

    In order for websockets to function properly, the ELB proxy protocol policy must be applied.

    Configuring using Terraform

    The following can be used as an example for configuring with Terraform:

    Running Rancher Server Behind an Application Load Balancer (ALB) in AWS

    We no longer recommend Application Load Balancer (ALB) in AWS over using the Elastic/ >8080 by default.

    Enabling Active Directory or OpenLDAP for TLS

    In order to enable Active Directory or OpenLDAP for Rancher server with TLS, the Rancher server container will need to be started with the LDAP certificate, provided by your LDAP setup. On the Linux machine that you want to launch Rancher server on, save the certificate.

    Start Rancher by bind mounting the volume that has the certificate. The certificate must be called ca.crt inside the container.

    You can check that the ca.crt was passed to Rancher server container successfully by checking the logs of the rancher server container.

    In the beginning of the logs, there will be confirmation that the certificate was added correctly.

    Launching Rancher Server behind an HTTP proxy

    In order to set up an HTTP proxy, the Docker daemon will need to be modified to point to the proxy. Before starting Rancher server, edit the /etc/default/docker file to point to your proxy and restart Docker.

    In the file, edit the #export http_proxy=»″ to have it point to your proxy. Save your changes and then restart docker. Restarting Docker is different on every OS.

    Note: If you are running Docker with systemd, please follow Docker’s instructions on how to configure the HTTP proxy.

    In order for the Rancher catalog to load, the proxy will need to be configured and Rancher server will need to be launched with environment variables to pass in the proxy information.

    If the Rancher catalog will not be used, run the Rancher server command as you normally would.

    When adding hosts to Rancher, there is no additional requirements behind an HTTP proxy.

    Launching Rancher Server with MySQL over SSL

    Note: Currently, supported in Rancher 1.6.3+

    Important Note

    If you are using a LDAP/AD authentication backend with Rancher whose certificate is signed by a different CA then that of the MySQL server, then this guide will not work for you!



    1. Copy the server’s certificate or CA certificate to the Rancher server host. When starting the rancher/server container you will have to mount that certificate to /var/lib/rancher/etc/ssl/ca.crt .
    2. Construct a custom JDBC URL by replacing the placeholders in this string with your database parameters:
      jdbc:mysql:// : / ?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&prepStmtCacheSize=517&cachePrepStmts=true&prepStmtCacheSqlLimit=4096&socketTimeout=60000&connectTimeout=60000&sslServerCert=/var/lib/rancher/etc/ssl/ca.crt&useSSL=true
    3. Export this JDBC URL to the container in both the CATTLE_DB_CATTLE_MYSQL_URL and CATTLE_DB_LIQUIBASE_MYSQL_URL environment variables
    4. Export CATTLE_DB_CATTLE_GO_PARAMS=»tls=true» to the container. If the subject field of the server’s certificate does not match the server’s hostname, you will need to use CATTLE_DB_CATTLE_GO_PARAMS=»tls=skip-verify» instead.


    Important: You have to specify your database parameters both in the JDBC URL as well as in the —db-xxx command arguments!


    Разворачиваем Rancher в InfoboxCloud: переносимую инфраструктуру с веб-интерфейсом для Docker

    Docker изменил облик современного подхода к размещению приложений и сервисов пользователя в облаках, представив переносимые контейнеры для приложений. Переносимость означает отсутствие зависимости от конкретной облачной инфраструктуры (vendor lock-in), простую миграцию приложений между облаками, простое развертывание, снижение расходов на поддержку и обслуживание. Имея контейнеризованное переносимое приложение вы можете сфокусироваться на увеличении производительности приложения, доступности и других важных особенностях приложений. Существующие технологии типа Kubernetes, Swarm, Panamax, Helios, Clocker, Dies и т.д. развивают технологии поверх Docker и делают свой значимый вклад в развитие экосистемы.

    Rancher фокусируется совершенно на другой проблеме. Представьте, что вы разворачиваете приложение в Docker в облаке. Инфраструктура переносима, а служебные сервисы типа отказоустойчивых балансировщиков нагрузки и других решений — нет. Если вам понадобилось смигрировать в другое облако где отличается данная функциональность — возникнут проблемы.

    Цель Rancher – создание переносимых инфраструктурных сервисов вокруг Docker, включая эластичное блочное хранилище, виртуальные сети, отказоустойчивый балансировщик нагрузки, группы безопасности, мониторинг, сервисы баз данных и многое другое. Все это вы можете переносить между собственными серверами и облаками различных производителей, использовать несколько регионов облачного провайдера одновременно. А раз не возникает зависимость на уровне инфраструктуры, вы можете выбирать облако по соотношениям надежности, производительности, цены и доверия.

    Кстати, исходные тексты Rancher доступны под лицензией Apache 2.0.

    В этой статье мы рассмотрим инфраструктуру Rancher подробнее и установим Rancher в InfoboxCloud.
    Как получить пробную версию InfoboxCloud бесплатно — читайте в конце статьи.

    Перед использованием Docker, Compose и Rancher будет полезно ознакомиться со статьями:
    Используем Docker и не волнуемся о vendor-lock
    Погружаемся в Docker: Dockerfile и коммуникация между контейнерами
    Обзор новшеств Docker Engine с 1.0 до 1.7. Введение в Docker Compose

    Основные возможности

    1. Частные сети. Возможность создания частных SDN сетей для каждого окружения, позволяющих безопасные коммуникации между контейнерами между хостами и облаками.
    2. Балансировка нагрузки. Встроенный эластичный балансировщик нагрузки для распределения трафика между контейнерами или сервисами. Сервис балансировки нагрузки может работать даже между различными регионами облака.
    3. Управление хранилищем. Поддержка снепшотов и бекапов томов Docker, возможность бекапить состояние контейнеров и состояние сервисов.
    4. Обнаружение сервисов. Распределенный DNS сервис обнаружения со встроенным мониторингом здоровья, который позволяет контейнерам автоматически регистрировать себя как сервисы и динамически находить другие в сети.
    5. Апгрейды сервисов. Возможность простого апгрейда сервисов с помощью клонирование и перенаправления запросов к сервису. Это позволяет проверить обновленный сервис перед направлением на него трафика.
    6. Управление ресурсами. Поддержка Docker Machine, инструмента для провижнинга хостов. Возможность мониторинга ресурсов хостов и управления развертыванием контейнеров.
    7. Совместное использование и управление пользователями. Возможность создания множества пользователей инфраструктуры и совместной работы над поддержкой жизненного цикла сервисов. Возможность создания отдельных окружений для разработки, тестирования и промышленного использования с возможностью совместного использования ресурсов.

    Интерфейсы для работы с Rancher

    Есть три основных способа работы с Rancher:

    1. Пользователи могут работать с Rancher с помощью Docker CLI и API. Rancher – это не еще один слой оркестрации и управления, скрывающий от пользователей функциональность Docker. Платформа Docker постоянно развивается и слой обертки не успевал бы за появлением новых функций Docker. Rancher работает в фоне и пользователи могут продолжать пользоваться нативным Docker Command Line Interface и шаблонами Compose. Rancher использует labels – возможность Docker 1.6 для передачи дополнительной информации через Docker CLI. Эту возможность разработала Rancher Labs и ее включили в Docker.
    2. Пользователи могут взаимодействовать с Rancher с помощью утилиты командной строки rancher-compose. Эта утилита позволяет пользователям запускать множество контейнеров и сервисов, которые основаны на docker-compose и инфраструктуре Rancher. Rancher–compose поддерживает формат docker-compose.yml. Опционально rancher-compose файл может быть расширен с помощью определений сервисов.
    3. Пользователи могут взаимодействовать с Rancher с помощью Rancher UI. В нем вы можете выполнять задачи по настройке, такие как установка контроля доступа, управление окружениями, добавление docker–реестров. Rancher UI – простой и интуитивный способ управления инфраструктурой и сервисами.

    Установка Rancher в InfoboxCloud

    В данном сценарии InfoboxCloud позволит вам создавать необходимое количество облачных серверов в Санкт-Петербурге, Москве или Амстердаме конфигураций, требуемой именно для ваших задач, а не выбирать из преднастроенных шаблонов серверов (если вам нужно еще CPU, RAM или диска — просто добавьте этого ресурса).

    Данные облачных серверов будут защищены тройной репликацией и автоматическим резервным копированием по расписанию. Вся дисковая подсистема ускоряется за счет Enterprise SSD–кеширования на дисках PCI–Express SSD и SSD уровня Datacenter. Доступность серверов по SLA – 99.99% в год.

    Пользуйтесь облаками потому что они успешно решают ваши задачи по доступным ценам, а не потому что деваться больше некуда.

    Rancher развертывается как набор контейнеров Docker (а значит установка будет простой). Инсталляция состоит из двух контейнеров: один контейнер — управляющий сервер, другой — агент на ноде. Rancher может работать в высокодоступных конфигурациях, но их мы будем рассматривать в будущих статьях.

    Системные требования
    • Рекомендуется использовать Rancher с CentOS 7 и Docker.
    • Для работы управляющего сервера необходим 1Gb оперативной памяти.
    Устанавливаем Rancher Server

    Если у вас еще нет доступа в InfoboxCloud – закажите его.

    Использование облака очень удобно тем, что никакой абонентской платы нет. При регистрации вы единовременно пополняете счет минимум на 500 рублей (по аналогии с покупкой sim–карты у мобильного оператора) и далее можете использовать облако по необходимости. Быстро рассчитать сколько примерно будет стоить для вас облачный сервер в месяц можно тут (указывайте правильно размерности, например 2 гигагерца частоты, а не 2000 гигагерц). Оплата производится на почасовой основе и замораживается на вашем счету. Используя автомасштабирование или изменяя объем доступных ресурсов сервера вручную можно оплачивать только за необходимые ресурсы и дополнительно экономить и иметь возможность получить больше ресурсов, когда это необходимо.

    После регистрации вы получите данные для доступа к панели управления на email. Войдите в панель управления по адресу: https://panel.infobox.ru

    В разделе «Облачная инфраструктура» вашей подписки нажмите «Новый сервер» (при необходимости подписка меняется в правом верхнем углу в выпадающем меню).

    Задайте необходимые параметры сервера. Обязательно выделите серверу 1 публичный IP–адрес и установите галочку «Разрешить управление ядром ОС», как показано на скриншоте ниже.

    В списке доступных операционных систем выберите CentOS 7 и завершите создание сервера.

    После этого данные для доступа к серверу придут к вам на электронную почту.

    После создания сервера с CentOS 7 подключитесь к нему по SSH.

    Мы подготовили скрипт, который позволит вам установить Docker и полезные утилиты для работы с Docker на такой сервер. Необходимые настройки будут выполнены автоматически.

    Выполните команду для установки Docker и Compose:

    Теперь можно установить Rancher Server.

    Создайте папку, где будут храниться файлы сервера Rancher и поддиректории для базы данных командой:

    Перейдите в директорию пользователя:

    Скачайте compose файл развертывания Rancher Server:

    И наконец запустите развертывание Rancher Server:

    После развертывания вы сможете зайти на сервер по адресу:

    Рекомендуется направить запись A домена на сервер Rancher, который будет использоваться с Rancher, чтобы в будущем не менять ключи авторизации при направлении домена и иметь возможность при изменении управляющего сервера не перенастраивать хосты Rancher.

    В будущих статьях мы рассмотрим, как включить поддержку SSL с Rancher (нужно перед Rancher развернуть реверс-прокси nginx).

    Настраиваем контроль доступа

    Контроль доступа нужен, чтобы Rancher ограничивал количество пользователей, имеющих доступ к вашим Rancher-серверам. Первый аккаунт, который настроил аутентификацию в Rancher становится аккаунтом администратора. Только у администраторов есть права на просмотр настроек контроля доступа и регистрацию хостов. Кроме этого администраторы имеют права на просмотр всех окружений в инсталляции, даже если они не были добавлены как члены окружения.

    Включение контроля доступа

    Нажмите на Settings в предупреждении об отключенном контроле доступа.

    В настоящий момент поддерживается авторизация только через Github, но в будущем появятся и другие способы.

    Если у вас еще нет аккаунта на Github, зарегистрируйтесь и залогиньтесь.

    Нажмите на значек своей учетной записи в правой верхней части GitHub и перейдите в раздел Settings.

    Перейдите в раздел «Applications» и нажмите «Developer Applications». В этом разделе нажмите «Register New Application».

    Заполните поля:

    • application name — укажите что угодно, чтобы вам было понятно, что это Rancher.
    • homepage URL – адрес установленного Rancher Server (домен или ip–адрес)
    • Application description — любое описание Rancher
    • Authorization callback URL указан на странице Settings в Rancher Server, которую мы открыли ранее.

    После этого нажмите «Register New Application».

    Вы увидите Client ID и Client Secret.

    Вставьте их в раздел настроек контроля доступа Rancher.

    После этого нажмите Authenticate with Github для сохранения настроек.

    Откроется страница Github, на которой нужно нажать «Authorize Application».

    Теперь контроль доступа настроен.

    Если вы хотите добавить человека или организацию в Rancher, в разделе Access control в секции Site Access нажмите Customize.

    Вы можете указать аккаунт человека или организации на Github и добавить в список пользователей Rancher.

    Добавленные пользователи смогут создавать окружения и вы можете разрешить им работать над существующими окружениями.

    Добавляем хост

    На хостах будет выполняться непосредственно работа контейнеров и сервисов. Рекомендуется для хоста создать отдельный сервер в InfoboxCloud с CentOS 7. Можно создать хосты в разных регионах, например в Москве, Санкт-Петербурге и Амстердаме и размещать сервисы Rancher и контейнеры там, где необходимо в данный момент. Дополнительный регион облака можно добавить на главной странице панели управления в разделе «Заказать новую услугу».

    В разделе «Облачная инфраструктура» вашей подписки нажмите «Новый сервер» (при необходимости подписка меняется в правом верхнем углу в выпадающем меню).

    Задайте необходимые параметры сервера. Обязательно выделите серверу 1 публичный IP–адрес и установите галочку «Разрешить управление ядром ОС», как показано на скриншоте ниже.

    В списке доступных операционных систем выберите CentOS 7 и завершите создание сервера.

    После этого данные для доступа к серверу придут к вам на электронную почту.

    Установите на сервер Docker скриптом:

    В целях экономии при тестировании можно использовать и тот же сервер, где установлен Rancher Server.

    Чтобы добавить хост в Rancher перейдите в раздел «Infrastructure» и нажмите «Add Host«.

    Нажмите «Custom». Вы увидите команду, которую нужно выполнить в консоли чтобы добавить сервер как хост.

    После этого нажмите Close и вы увидите хост в вашей инфраструктуре.

    Если нажать на этот хост вы увидите актуальный график загрузки ресурсов. В данном случае оперативная память занята т.к. мы разрешили использование Rancher Server и как хост. В панели управления InfoboxCloud можно просто добавить оперативной памяти серверу и ресурсов станет больше.

    Добавим еще несколько хостов в Rancher Server в разных регионах. Просто создаем в нужном регионе сервер с CentOS 7 и установленной галочкой «Разрешить управление ядром ОС», устанавливаем Docker скриптом, нажимаем в Rancher Server Add Host и исполняем команду, выданную Rancher на хосте. Так просто.

    Теперь у нас есть инфраструктура на Rancher, работающая в различных регионах InfoboxCloud.

    В любой момент вы можете деактивировать один из хостов, чтобы запретить создавать в нем новые контейнеры.

    Добавляем Docker Registry

    Полезным будет добавить репозитории Docker или собственные в Rancher.
    Давайте посмотрим, как просто можно добавить DockerHub.

    Нажмите на имя вашего пользователя в панели управления Rancher и далее нажмите «Registries».

    Затем нажмите «Add Registry».

    Если у вас еще нет доступа к Docker Hub, добавьте его тут.
    После этого введите данные для доступа.

    Репозиторий Docker Hub будет успешно добавлен.

    В следующей статье мы рассмотрим функциональность Rancher на практике и развернем набор полезных сервисов в переносимую инфраструктуру.

    Как получить пробную версию InfoboxCloud бесплатно?

    Пришлите нам ваш адрес электронной почты и ФИО на trukhinyuri@infoboxcloud.com, в ответ получите данные для доступа к панели управления. Вы можете тестировать новый регион облака в течение 15 дней, далее необходимо перейти на полную версию облака. Запросить бесплатную пробную версию можно до 21 августа 2015 года.

    Если у вас есть вопросы или замечания, напишите нам и мы с радостью ответим. Если вы не можете оставлять комментарии на Хабре, напишите в Сообществе InfoboxCloud.


Читайте также:  Установка кондиционера маз 5440

Добавить комментарий