Все команды на главных узлах Kubernetes (k8s) выполняйте от имени пользователя root. Ввиду возможных проблем с неправильной маршрутизацией трафика в обход iptables при использовании ОС RHEL / CentOS 7, убедитесь, что для net.bridge.bridge-nf-call-iptables в конфигурации sysctl установлено значение 1.
Примечание. В дальнейшем описании для главных узлов кластера используются названия kn0, kn1, kn2, для рабочих узлов - kn3, kn4, kn5.
На каждом узле выполните:
От имени пользователя root внесите изменения в system для правильной работы сетей в k8s:
cat >>/etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl –system
apt-get update && apt-get install -y apt-transport-https curl
Добавьте в систему официальный Kubernetes GPG ключ:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
Добавьте Kubernetes репозиторий:
cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/kubernetes-xenial main
EOF
Установите значение /proc/sys/net/bridge/bridge-nf-call-iptables равным 1 для корректной работы CNI (Container Network Interface). Для этого проверьте текущее значение:
cat /proc/sys/net/bridge/bridge-nf-call-iptables
Если текущее значение равно 0, то выполните команду:
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
На узле kn0 от имени пользователя root инициализируйте кластер Kubernetes:
Перейдите в домашнюю директорию пользователя fmpadmin: /home/fmpadmin. Распакуйте архив, содержащий скрипты и yaml-файлы на одном управляющем узле:
% tar –xvzf ./fmp_k8s_v<номер версии>.tar
Перейдите в директорию с распакованными скриптами:
% cd ./ fmp_k8s_v<номер версии>/
Перейдите в поддиректорию rke:
% cd ./rke
Выполните команду:
% ls –lh ./
Будет отображён список файлов в текущей директории:
-rwxr-xr-x 1 root root 388
Mar 26 20:44 fmpclust.yml
-rw-rw-r-- 1 root root 1.3K
Mar 26 20:48 ReadMe.txt
-rwxr-xr-x 1 root root 36M
Mar 28 14:54 rke
Переместите или скопируйте файл rke в директорию /usr/local/bin/:
% mv ./rke /usr/local/bin/
Установите права на файл rke:
% chmod 755 /usr/local/bin/rke
Отредактируйте содержимое файла fmpclust.yml в соответствии с вашей конфигурацией:
vi ./fmpclust.yuml
nodes:
- address: m1
user: ваш пользователь
role: [controlplane,etcd]
- address: m2
user: ваш пользователь
role: [controlplane,etcd]
- address: m3
user: ваш пользователь
role: [controlplane,etcd]
- address: w1
user: ваш пользователь
role: [worker]
- address: w2
user: ваш пользователь
role: [worker]
- address: w3
user: ваш пользователь
role: [worker]
services:
kubelet:
extra_binds:
- "/lib/modules:/lib/modules"
extra_args:
node-status-update-frequency: 10s
etcd:
snapshot: true
creation: 6h
retention: 24h
kube-api:
extra_args:
default-not-ready-toleration-seconds:
30
default-unreachable-toleration-seconds:
30
kube-controller:
extra_args:
node-monitor-period: 5s
node-monitor-grace-period: 40s
pod-eviction-timeout: 30s
authentication:
strategy: x509
# sans:
# - "10.99.255.254"
network:
plugin: flannel
Примечание. 10.99.255.254 - общий IP-адрес кластера серверов (если применимо); m1, m2, m3 - имена главных узлов Kubernetes; w1, w2, w3 - имена рабочих узлов Kubernetes; ваш пользователь - пользователь, от имени которого будет осуществляться взаимодействие между узлами (fmpadmin).
Разверните и проинициализируйте кластер:
% rke up --config fmpclust.yml
Операция занимает значительное количество времени и сопровождается подробным выводом в консоль всех этапов развёртывания кластера.
Если всё сделано правильно, то развёртывание кластера пройдет успешно, и в консоль сервера будет выведена строка:
INFO[0103] Finished building Kubernetes cluster successfully
Если возникли ошибки, запустите rke up повторно с ключом debug для вывода подробной информации:
% rke -d up --config fmpclust.yml
После инициализации кластера в текущей директории рядом с файлом fmpclust.yml появится файл kube_config_fmpclust.yml. Переместите или скопируйте его в профиль пользователя. Это позволит пользователю взаимодействовать с кластером. Выполняйте данную операцию от имени пользователя fmpadmin:
% mkdir ~/.kube
% cd ./ fmp_k8s_v<номер версии>/rke/
% cp ./kube_config_fmpclust.yml ~/.kube/config
% sudo chown -R fmpadmin:fmpadmin /home/fmpadmin/.kube
В результате будет установлен и инициализирован кластер Kubernetes. Проверьте его работу:
Проверьте версию сервера и клиента k8s:
% kubectl version - -short
Пример результата выполнения команды:
Client Version: v1.13.5
Server Version: v1.13.5
Проверьте статус компонентов k8s:
% kubectl get cs
Пример результата выполнения команды:
NAME STATUS
MESSAGE ERROR
scheduler Healthy
ok
controller-manager Healthy ok
etcd-0 Healthy
{"health": "true"}
etcd-1 Healthy
{"health": "true"}
etcd-2 Healthy
{"health": "true"}
После выполнения действий перейдите к установке программного обеспечения Rancher.
См. также:
Подготовка среды для продукта «Форсайт. Мобильная платформа» | Установка Rancher