У статті описано процедуру налаштування нового робочого вузла (вузол працівника) та його з'єднання з кластером Kubernetes.
Зміст:
- Підготовка сервера перед додаванням до кластера Kubernetes
- Підключення вузла до кластера Kubernetes
- Видалення вузла з кластера Kubernetes
Вимоги до ресурсів серверів (віртуальна машина):
Для стабільної роботи на компонентах VM кластера Kubernetes та корисного навантаження у вигляді поту та послуг рекомендується виділити наступні ресурси:
- Процесор - 2 ядра;
- Оперативна пам’ять - 4 Гб;
- HDD - 8 Гб
Підтримувана ОС:
- Ubuntu версія 16.04 і вище;
- Debian версія 9 і вище;
- Centos 7 і вище
Якщо VM працює в середовищі з інтересами/брандмауерами, слід відкрити доступ до наступних портів:
-
10250/TCP
- Це необхідно для API Kubelet -
30000-32767/TCP
- Необхідно працювати над цим вузлом служб NodePort
Підготовка сервера перед додаванням до кластера Kubernetes
У цьому прикладі ми підготували віртуальну машину з Ubuntu, щоб додати Kubernetes як вузол кластера. Тепер вам потрібно виконати підготовчі кроки для налаштування хоста.
- Замкніть відключення. Kubernetes вимагає відключити файл Swing (Swap) на киванні. Якщо накачування увімкнено, це може призвести до проблем із продуктивністю та стабільністю Kubernetes. Від'єднайте своп за допомогою команди:
Sudo swapoff -a
Відключіть використання гойдалків при перезавантаженні комп'ютера:
Sudo sed -i '/ swap/ s/^\ (.*\) $/#\ 1/g '/etc/fstab
- Налаштування модулів ядра Linux. Створіть файл /etc /mudeles-Liber.D/контейнер.Конфіденція з таким вмістом:
Накладка BR_NETFILTER
Виконайте модулі ядра за допомогою команд:
Sudo modprobe накладання
Sudo modprobe br_netfilter - Конфігурація конфігурації sysctl для мережі Kubernetes
Створити файл /etc /sysctl.D/99-kubernetes-cry.Конфіденція з таким вмістом:
Сітка.Мост.Bridge-NF-Call-IP6Tables = 1 сітка.Мост.Bridge-nf-call-iptables = 1 сітка.Ipv4.Ip_forward = 1
Оновіть конфігурацію, завершивши команду
Sysctl -System
Тепер вам потрібно встановити необхідні пакети:
- Контейнер
- Apt-transport-https і curl
- Кубернети
Встановіть пакет Контейнер За допомогою команди:
Sudo apt-get update && sudo apt-gget inst-containerd
Створіть папку конфігурації контейнера:
Sudo mkdir -p /etc /контейнер
Генерувати файл конфігурації контейнера:
Sudo containerd config за замовчуванням | Sudo tee/etc/containerd/config.Томл
Перезавантажити контейнер:
Перезапуск SystemCtl Контейнер
Встановіть дані пакетів Apt-transport-https і Згорнути За допомогою команди:
Sudo apt-get update && sudo apt-get install-transport-https curl
Тепер вам потрібно встановити пакети Кубернети. Завантажте та встановіть ключ GPG для офіційного сховища Kubernetes:
Curl -S https: // пакети.Хмара.Google.Com/apt/doc/apt-ключ.GPG | Sudo apt-ключ додавання -
Додайте сховище Kubernetes до локального списку сховищ, створивши файл/etc/apt/джерела.Список.D/Kubernetes.Список із наступним вмістом:
Deb https: // apt.Кубернети.Io/ kubernetes-xenial main
Оновіть список сховищ, завершивши команду:
Sudo apt-get оновлення
Встановіть пакети Kubernetes:
Sudo apt -get install -kubelet = 1.20.1-00 kubeadm = 1.20.1-00 kubectl = 1.20.1-00
Підключення вузла до кластера Kubernetes
Перш ніж додати новий вузол до кластера Kubernetes, вам потрібно перевірити, можливо, цей хост вже додано до кластера. Якщо так, то на хоста - Kubelet та KubeProxy вже встановлено два компоненти, то на хост - Кубелет та Кубепрокси. Ви можете перевірити це в команді:
SystemCtl Status kubelet.Послуга
У відповідь команда поверне або помилку (якщо Kubelet не встановлений), або стан служби Кубелет (приклад на малюнку нижче).
Припустимо, встановлюється kubelet на машині. Це може сказати, що машина вже є вузлом кластера Kubernetes.
Параметри кластерів Kubernetes, до яких належить машина, зберігаються у файлі конфігурації /Var/lib/kubelet/config.Ямл
. Приклад вмісту цього файлу на скріншоті нижче:
Тут ви можете побачити назву кластеру (кластердом)
Якщо хост не додається до кластера, вам потрібно генерувати команду приєднання NODA. Для цього на вузлі площини управління kubernetes виконують команду:
Kubeadm token create-print-join-command
Ця команда генерує тимчасовий маркер і команду приєднання вузла робочого вузла до кластера. Команда, що приймає приєднання, має форму:
Kubeadm приєднання--token-discovry-token-ca-cert-hash sha256:
де
-
- URL -адреса API Server Kubernetes Перегляньте ,
-
- З'єднання маркера,
-
- Геш Відкритий ключ Центру сертифікації кореня (CA)
Тепер перейдіть на хост і заповніть команду, щоб приєднатися до робочого (працівника) NODA до кластера Kubernetes:
Sudo kubeadm приєднатися <
Команда з'єднання NODA з попереднього кроку>
Принесіть на площину управління список поточних кластерних кивок. Перевірте, чи новий хост був доданий до кластера Kubernetes:
Kubectl отримати вузол
Видалення вузла з кластера Kubernetes
Тепер подумайте, як видалити робочий вузол із кластера.
Принесіть список кластерних кивок на вузлі площини управління:
Kubectl отримати вузол
Видаліть навантаження з вузла:
Кубектл злив
Kubectl Dounch-Gnorore-Daemonsets -Delete-Local Data
Зніміть вузол з кластера:
Kubectl Delete Node
Після зняття вузла з кластера виконайте команду на ньому:
Скидання Kubeadm
Ця команда поверне вузол до стану, в якій це було до командування Kubeadm приєднатися
.