Для подготовки среды для продукта «Форсайт. Мобильная платформа»:
Установите программное обеспечение Rancher для управления кластером k8s.
Примечание. В дальнейшем описании для главных узлов кластера используются названия kn0, kn1, kn2, для рабочих узлов - kn3, kn4, kn5.
Для подготовки узлов кластера:
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
Отключите SWAP-раздел на всех узлах кластера, так как kubelet не поддерживает работу со SWAP:
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
swapoff –all
Важно.
Если все узлы кластера являются виртуальными машинами под управлением
VMware, то на каждый узел установите пакет vmware-tools:
sudo apt-get install
-y open-vm-tools
Установите базовые пакеты и среду 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
Добавьте пользователя fmpadmin в группу docker:
sudo usermod -aG docker fmpadmin
Выполните настройку файла /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
Сгенерируйте SSH-ключ для пользователя fmpadmin на узле kn0:
От имени пользователя 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-ключ.
Создайте конфигурационный файл для 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
Сохраните изменения и выйдите из редактора.
Добавьте права на чтение, редактирование, исполнение файла config:
chmod 644 ~/.ssh/config
Соберите публичные ключи всех узлов (выполняется на узле kn0 под пользователем fmpadmin):
$ ssh-keyscan kn0 kn1 kn2 kn3 kn4 kn5 >> ~/.ssh/known_hosts
Добавьте созданный SSH-ключ на все узлы:
ssh-copy-id kn1
ssh-copy-id kn2
ssh-copy-id kn3
ssh-copy-id kn4
ssh-copy-id kn5
Примечание. При запросе системой пароля введите пароль пользователя fmpadmin.
Настройте 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.
См. также:
Подготовка и развертывание отказоустойчивого кластера | Подготовка к запуску продукта «Форсайт. Мобильная платформа»