После установки всех доступных обновлений устанавливаем Docker. Я советую использовать официальный shell скрипт с сайта get.docker.com .

curl -fsSL https://get.docker.com -o get-docker.sh

sudo sh get-docker.sh

Далее необходимо запустить вэб интерфейс для управления rancher. 

docker run —name rke_web -d —restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest

Результатом выполнения данной команды будет скачивание докер образа rancher и запуск его с прослушиванием 80 и 443 портов на всех доступных сетевых интерфейсах имеющихся в установленной операционной системе. Опция —restart=unless-stopped позволит нам быть уверенными в том что после перезагрузки или незапланированного рестарта контейнер запуститься сам автоматически. 

После запуска контейнера web интерфейс rancher будет доступен нам на IP адресе сервера (локального или внешнего). При первом входе вас попросят сгенерировать пароль который необходимо запомнить и записать. 

set password rancher

В следующем окне нужно прописать по какому адресу или доменному имени будет доступен rancher вэб интерфейс. Тут важно указать достоверную информацию.

set ip server for rancher

Дальше мы попадаем на основную страницу управления и создания кластера kubernetes

list global cluster kubernetes in rancher

Тут необходимо нажать в верхнем правом углу кнопку «Add Cluster»

rancher install kubernetes

Далее в появимся окне выбираем «From existing nodes (Custom)» это инициализирует процедуру создания кластера и вызовет следующее окно в котором необходимо прописать и выбрать актуальные для вас настройки.

А именно:

1. Cluster Name

2. Kubernetes Version

3. Network Provider

4. Nginx Ingress

5. Recurring etcd Snapshot Enabled — Recurring etcd Snapshot Interval

Это топ 5 параметров которые я советую настроить сразу при инсталляции кластера. В качестве Network Provider советую использовать Weave он очень легковесный простой в использовании сетевой плагин который работает на втором уровне сетевой модели OSI (L2). 

После выбора всех опций из личного опыта советую немного протюнить некоторый опции которые мы разберем чуть позже в других наших статьях.  Все доп опции можно прописать после нажатия на кнопку «Edit as Yaml» на той же странице создания Cluster-a. Делайте это после выбора всех опций иначе некоторые параметры в yaml вы можете не увидеть. 

И так в rancher_kubernetes_engine_config добавляем следующую опцию

rancher_kubernetes_engine_config:

  authentication:

    sans:

     — IP or Domain address

     — 1.1.1.1 (example)

     — new.test.com (example)

Все внесенные сюда IP или Domain адреса будут добавлены в разрешенные для сгенерированного tls сертификата kubernetes (для https api). В первую очередь это будет необходимо для того чтобы подключить gitlab.

Следующие настройки для раздела kube-api:

services:

  kube-api:

  …….

    extra_args:

      default-not-ready-toleration-seconds: ’30’

      default-unreachable-toleration-seconds: ’30’

И для kube-controller:

services:

…….

  kube-controller:

  …….

    extra_args:

     node-monitor-grace-period: 16s

     node-monitor-period: 4s

     pod-eviction-timeout: 40s

А так же для kubelet:

services:

…….

  kubelet:

  …….

    extra_args:

      node-status-update-frequency: 4s

Более подробно об этих доп настройках можете прочитать в интернете.

После заполнения всех полей нажимаем кнопку «Next» (она находиться в самом низу страницы ). Тем самым мы инициализируем создание кластера в rancher.

Далее у увидим новое окно в котором нам предложат отметить три роли: etcd, control plane and worker. В зависимости от того какие роли мы выбрали у нас будет меняться строка инициализации и установки в строке чуть ниже. Данную строку необходимо будет скопировать и запустить на сервере ( ноды kubernetes ). Результатом выполнения этой строки будет поднятие тех ролей которые вы выбрали. Изначально советую отметить роли etcd и control plane это компоненты мастер нод kubernetes их нужно минимум 3 шт для отказоустойчивости и разместить их отдельно от worker нод.

add custom  node kubernetes in cluster

На этом этом создания кластера можно считать завершенным. Также помните что можно в любой момент зайти в меню управления кластера и изменить настройки после инициализации кластера. Применение новых настроек приведет к генерации и распространение новых настроек и конфигов на все master и worker ноды. Данная операция может привести к небольшому даунтайму.

rancher list kubernetes cluster

Извинении настроек после создания кластера доступны в следующем меню

Меню Cluster нажимаем на : в самом конце строки и выбираем в появившемся меню «Edit» Дальше делаем все те же шаги что и при создании кластера.