Перейти до змісту

Робота з Rancher і Kubernetes

Kubernetes (K8s) — це система керування контейнерами з відкритим вихідним кодом для керування розгортанням і керування контейнерними програмами.

K8s зробив собі ім’я на ринку, тому більше не потрібно його представляти.

Хмарні постачальники полегшили розгортання керованих платформ Kubernetes, але як щодо налаштування та керування локальним кластером?

Наскільки легко керувати декількома кластерами, як локальними, так і мультихмарними?

Відповідь на останні два запитання – Ні. Налаштувати локальний кластер складно, а керування багатохмарним кластером може стати справжнім головним болем.

Ось тут і виникає тема цього посібника: Rancher! Rancher також є системою з відкритим вихідним кодом, що дозволяє інсталювати та оркеструвати кілька мультихмарних або локальних кластерів і надає цікаві функції, такі як каталог програм і практичний веб-інтерфейс для візуалізації ресурсів.

Rancher дозволить вам розгортати кластери Kubernetes, якими керують хмарні постачальники, імпортувати існуючі кластери Kubernetes або розгортати кластери K3s (скорочено, це полегшена версія K8s) або K8s.

Цей посібник допоможе вам відкрити Rancher, встановити та запустити його, а потім створити локальний кластер Kubernetes, розгорнутий на серверах Rocky Linux.

Розгортання Rancher

Встановлення Rancher відносно тривіальне, якщо на вашому сервері встановлено Docker.

Ви можете знайти інсталяцію Docker тут у gemstones.

Щоб працювати на Rocky 9, Rancher також потребує завантаження модулів/ /run//run/

Одним із способів забезпечити завантаження необхідних модулів під час запуску системи є створення файлу /etc/modules-load.d/rancher.conf з таким вмістом:

ip_tables
ip_conntrack
iptable_filter
ipt_state

І найпростіший спосіб застосувати ці зміни – перезавантажити сервер: sudo reboot.

Після перезавантаження ви можете забезпечити належне завантаження модулів завдяки lsmod | команда grep <module_name>.

Тепер у нас є система, готова прийняти контейнер Rancher:

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

Примітка

Якщо вам цікаво, перегляньте журнали нового контейнера. Ви побачите, що кластер K3s (з одним вузлом) щойно створено! Ось як працює Rancher у своїй автономній версії.

![k3s local cluster](img/rancher_k3s_local_cluster.png)

Оскільки Rancher прослуховує порт 443, відкрийте брандмауер, щоб дозволити доступ ззовні:

firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --zone=public --add-service=https

Якщо ви перейдете до нещодавно розгорнутого веб-інтерфейсу Rancher, з’явиться повідомлення про те, як отримати пароль адміністратора в журналах контейнерів.

Для цього запустіть таку команду:

docker logs rancher  2>&1 | grep "Bootstrap Password:"

Ви готові підключитися до webUI Rancher.

rancher

Примітка

Це рішення жодним чином не готове до виробництва. Ви повинні забезпечити високу доступність системи, але це хороший початок. Розгляньте можливість розгортання Rancher на існуючому кластері K8s для оптимальної високої доступності.

Kubernetes на серверах Rocky Linux 9

Rancher пропонує свою версію Kubernetes на основі докерів: RKE (Rancher Kubernetes Engine).

Все, що вам потрібно, це кілька серверів Rocky Linux і інстальований на них Docker engine.

Не забувайте, що однією з вимог Kubernetes є наявність непарної кількості головних вузлів (наприклад, 1 або 3). Для наших тестів почніть з трьох головних вузлів і двох додаткових вузлів лише з робочою роллю.

Після встановлення Docker на серверах зупиніть firewalld і запустіть nftables на кожному сервері:

systemctl stop firewalld
systemctl disable firewalld
systemctl start nftables
systemctl enable nftables

Ми готові до створення нашого кластеру.

Створення кластера

В області керування кластером створіть новий кластер:

create cluster

Ви можете створити кластер у розміщеному постачальнику Kubernetes, підготувати нові вузли та створити кластер за допомогою RKE2/K3s або, у нашому випадку, використати наявні вузли та створити кластер за допомогою RKE2/K3s.

Виберіть останній варіант.

Введіть назву та опис кластера.

Перед початком створення кластера не поспішайте ознайомитися з різними доступними параметрами.

cluster creation

Після створення кластера перейдіть на вкладку Реєстрація, щоб додати наші сервери:

registring hosts

Спочатку виберіть різні ролі вузла, який ви додаєте, і скопіюйте необхідний командний рядок. Якщо ваш кластер використовує самопідписаний сертифікат, установіть відповідний прапорець.

Перейдіть до вузла, який ви хочете додати до конфігурації, і вставте команду, яку ви скопіювали раніше.

Через кілька хвилин сервер буде додано до кластера, і якщо це перший сервер і має всі ролі, кластер стане доступним у веб-інтерфейсі.

Після додавання 5 серверів ви повинні отримати результат, подібний до цього:

clusters hosts

Висновок

Вітаємо! Завдяки функціям Rancher ви встановили свій перший кластер Kubernetes всього за кілька хвилин/годин.

Якщо ви новачок у Kubernetes, ви вже можете пишатися собою: ви на правильному шляху. Тепер у вас є все необхідне, щоб продовжити відкриття Kubernetes.

Author: Antoine Le Morvan

Contributors: Steven Spencer, Ganna Zhyrnova