Подготовка среды для продукта «Форсайт. Мобильная платформа»

Для подготовки среды для продукта «Форсайт. Мобильная платформа»:

  1. Подготовьте узлы кластера.

  2. Установите пакет Heartbeat.

  3. Подготовьте кластер распределенной файловой системы Ceph.

  4. Подготовьте кластер Kubernetes.

  5. Установите программное обеспечение Rancher для управления кластером k8s.

Примечание. В дальнейшем описании для главных узлов кластера используются названия kn0, kn1, kn2, для рабочих узлов - kn3, kn4, kn5.

Подготовка узлов кластера

Для подготовки узлов кластера:

  1. На всех узлах создайте пользователя fmpadmin, от имени которого будет происходить установка и управление будущим кластером:

sudo useradd -m -d /home/fmpadmin -s /bin/bash fmpadmin
# Задание пароля пользователю fmpadmin
sudo passwd fmpadmin

Добавьте пользователя fmpadmin в sudo users, для того чтобы всякий раз при использовании команды sudo не приходилось вводить пароль:

echo "fmpadmin ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/fmpadmin
chmod 0440 /etc/sudoers.d/fmpadmin

  1. Отключите SWAP-раздел на всех узлах кластера, так как kubelet не поддерживает работу со SWAP:

sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
swapoff –all

Важно. Если все узлы кластера являются виртуальными машинами под управлением VMware, то на каждый узел установите пакет vmware-tools:
sudo apt-get install -y open-vm-tools

  1. Установите базовые пакеты и среду Docker Community Edition:

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update

Для просмотра списка доступных к установке версий Docker Community Edition используйте команду:

sudo apt-cache madison docker-ce

Пример результата выполнения команды:

###On each of your machines, install Docker. Version 18.09.9 is recommended, but 1.11, 1.12, 1.13, 17.03 and 19.03.5 are known to work as well.
### Latest validated Docker version: 18.09.x
## Install docker ce.
sudo apt-get update && sudo apt-get install docker-ce=5:18.09.9~3-0~ubuntu-xenial

  1. Добавьте пользователя fmpadmin в группу docker:

sudo usermod -aG docker fmpadmin

  1. Выполните настройку файла /etc/hosts одинаково на всех узлах:

127.0.0.1           localhost
<host-ip-address>   kn0.our.cluster kn0
<host-ip-address>   kn1.our.cluster kn1
<host-ip-address>   kn2.our.cluster kn2
<host-ip-address>   kn3.our.cluster kn3
<host-ip-address>   kn4.our.cluster kn4
<host-ip-address>   kn5.our.cluster kn5
# The following lines are desirable for IPv6 capable hosts
#::1 localhost ip6-localhost ip6-loopback
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters

  1. Сгенерируйте SSH-ключ для пользователя fmpadmin на узле kn0:

    1. От имени пользователя fmpadmin выполните команду:

ssh-keygen

В консоль будет выведен диалог, например:

Enter file in which to save the key (/home/user/.ssh/id_rsa):

Нажмите клавишу ENTER. Далее система предложит ввести кодовую фразу для дополнительной защиты SSH-подключения:

Enter passphrase (empty for no passphrase):

Пропустите этот и следующий шаги. Для этого нажимайте клавишу ENTER. В результате будет создан SSH-ключ.

    1. Создайте конфигурационный файл для SSH:

vim ~/.ssh/config

Содержимое конфигурационного файла:

Host kn0
      Hostname kn0
      User fmpadmin
Host kn1
      Hostname kn1
      User fmpadmin
Host kn2
      Hostname kn2
      User fmpadmin
Host kn3
      Hostname kn3
      User fmpadmin
Host kn4
      Hostname kn4
      User fmpadmin
Host kn5
      Hostname kn5
      User fmpadmin

Сохраните изменения и выйдите из редактора.

    1. Добавьте права на чтение, редактирование, исполнение файла config:

chmod 644 ~/.ssh/config

  1. Соберите публичные ключи всех узлов (выполняется на узле kn0 под пользователем fmpadmin):

$ ssh-keyscan kn0 kn1 kn2 kn3 kn4 kn5 >> ~/.ssh/known_hosts

  1. Добавьте созданный SSH-ключ на все узлы:

ssh-copy-id kn1
ssh-copy-id kn2
ssh-copy-id kn3
ssh-copy-id kn4
ssh-copy-id kn5

Примечание. При запросе системой пароля введите пароль пользователя fmpadmin.

  1. Настройте NTP-cервер для синхронизации времени между узлами:

sudo apt-get install -y ntp ntpdate
cp /etc/ntp.conf /etc/ntp.conf.orig

Примечание. Настройку проводите для второго сетевого интерфейса, предназначенного только для межузлового трафика.

На узле kn0:

cat << EOF > /etc/ntp.conf \
server 127.127.1.0 prefer \
fudge 127.127.1.0 stratum 10 \
interface ignore wildcard \
interface listen <адрес ntp server lan ip> \
EOF
systemctl restart ntp.service

На остальных узлах:

server <адрес ntp server lan ip на узле kn0> iburst
restrict default
interface ignore wildcard
interface listen <адрес ntp client lan ip>
sudo systemctl restart ntp.service

После выполнения действий узлы кластера будут подготовлены, далее перейдите к установке пакета Heartbeat.

См. также:

Подготовка и развертывание отказоустойчивого кластера | Подготовка к запуску продукта «Форсайт. Мобильная платформа»