Блог компанії 3v-Hosting

Як створити Kubernetes кластер з трьох VPS серверів

Адміністрування

10 хв.


Якщо ви хочете отримати практичний досвід роботи з оркеструванням контейнерів, створення Kubernetes кластера з трьох віртуальних приватних серверів (VPS) - відмінний спосіб для цього. Kubernetes - це потужна система з відкритим вихідним кодом для автоматизації розгортання, масштабування та управління контейнерними додатками. Вона широко використовується у виробничих середовищах. У цій статті ви дізнаєтеся, як крок за кроком створити Kubernetes кластер за допомогою трьох серверів VPS.

 

 

 

 

Що таке Kubernetes?

 

Kubernetes, часто званий K8s, - це платформа для оркестрування контейнерів, яка автоматизує розгортання, масштабування та управління додатками. Вона спрощує управління контейнерними додатками на декількох машинах. Незалежно від того, чи працюєте ви з мікросервісами або монолітними додатками, Kubernetes бере на себе більшу частину складнощів управління контейнерними середовищами.

 

Основні компоненти Kubernetes включають:

    Nodes (Вузли): машини (фізичні або віртуальні), на яких виконуються робочі навантаження Kubernetes.
    Pods: найменші розгортаються одиниці, що містять один або кілька контейнерів.
    Control Plane: мозок кластера, який приймає глобальні рішення про кластер (наприклад, планування, моніторинг).

У цьому посібнику ми створимо Kubernetes кластер з трьома серверами VPS. Ці сервери VPS виконуватимуть різні ролі: один - як головний вузол (майстер), а два інших - як робочі вузли (воркери).

 

 

 

 

Необхідні умови

 

Перед початком роботи переконайтеся, що у вас є наступне:

    - Три екземпляри VPS з Ubuntu 20.04 або 22.04 (або іншим сумісним дистрибутивом Linux).
    - Не менше 2 ГБ ОЗУ і 2 процесори на кожен VPS.
    - Доступ по SSH до кожного VPS.
    - Базові знання команд Linux і мереж.

Вам також необхідно встановити Kubeadm, Kubelet і Kubectl на кожному з серверів VPS. Kubeadm - це інструмент, що використовується для ініціалізації Kubernetes кластера, а Kubelet запускається на кожному вузлі, щоб забезпечити роботу контейнерів в підсистемах. Kubectl - це інтерфейс командного рядка для взаємодії з кластером Kubernetes.

 

 

 

 

Крок 1: Підготовка серверів

 

Оновлення та модернізація серверів

На кожному VPS оновіть список пакетів та оновіть встановлені пакети.

    sudo apt update && sudo apt upgrade -y


Встановлення Docker

Kubernetes використовує середовище виконання контейнерів, і Docker є найбільш широко використовуваним варіантом.

Щоб встановити Docker:

    sudo apt install -y docker.io

Запустіть і увімкніть Docker для запуску під час завантаження:

    sudo systemctl enable docker
    sudo systemctl start docker

Додайте свого користувача до групи Docker, щоб не використовувати sudo для команд Docker:

    sudo usermod -aG docker $USER


Вимкніть своп

Для правильної роботи Kubernetes необхідно вимкнути своп. Виконайте наступні команди, щоб вимкнути своп на кожному сервері:

    sudo swapoff -a
    sudo sed -i „/ swap / s/^/#/“ /etc/fstab


Налаштуйте мережу

Kubernetes використовує певні порти для зв'язку між вузлами. Переконайтеся, що наступні порти відкриті в брандмауері:

    - 6443: сервер API (майстер)
    - 10250: API Kubelet
    - 10251: планувальник
    - 10252: диспетчер контролерів
    - 2379-2380: сервер Etcd
    - 30000-32767: служби NodePort (для відкриття доступу до додатків)

 

Якщо для управління брандмауером використовується UFW, виконайте:

    sudo ufw allow 6443,10250,10251,10252,2379:2380,30000:32767/tcp

 

 


 

Інші статті з адміністрування в нашому Блозі:


    - Шпаргалка з Docker: Основні команди для початку роботи

    - Основи Docker-Compose

    - Cron - Плануй завдання на Linux-серверах правильно

    - 10 корисних консольних утиліт для моніторингу Linux-сервера

 


 

 

Крок 2: Встановіть компоненти Kubernetes

 

Встановіть Kubeadm, Kubelet і Kubectl

На кожному VPS встановіть інструменти Kubernetes.

Спочатку додайте репозиторій Kubernetes:

    sudo apt update && sudo apt install -y apt-transport-https
    sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    sudo apt-add-repository «deb https://apt.kubernetes.io/ kubernetes-xenial main»

 

Потім встановіть компоненти:

    sudo apt update
    sudo apt install -y kubeadm kubelet kubectl

 

Увімкніть і запустіть Kubelet:

    sudo systemctl enable kubelet
    sudo systemctl start kubelet

 

 

 

 

Крок 3: Ініціалізація майстер-вузла

 

На VPS, який буде служити майстер-вузлом, ініціалізуйте Kubernetes кластер за допомогою kubeadm. Ця команда налаштує площину управління та згенерує токен для робочих вузлів, щоб вони могли приєднатися до кластера.

 

Запустіть наступне на майстер-вузлі:

    sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Це запустить кластер і надасть команду з токеном, який робочі вузли будуть використовувати для приєднання до кластера.

Вивід буде виглядати приблизно так:

    kubeadm join 192.168.1.100:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

 

 

 

 

Крок 4: Налаштування доступу Kubectl

 

Після ініціалізації кластера необхідно налаштувати kubectl для взаємодії з кластером з майстер-вузла.

Створіть файл конфігурації Kubernetes для користувача root:

    sudo mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config

 

Перевірте конфігурацію, виконавши:

    kubectl get nodes

На цьому етапі ви повинні побачити майстер-вузол у стані NotReady, оскільки робочі вузли ще не додані.

 

 

 

 

Крок 5. Налаштування мережевого плагіна

 

Kubernetes вимагає мережевий плагін для управління мережею підсистем. Flannel - простий і популярний варіант для цієї мети.

На головному вузлі встановіть Flannel:

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

 

Зачекайте кілька хвилин, поки завершиться налаштування мережі. Ви можете перевірити статус, виконавши:

    kubectl get pods --all-namespaces

 

 

 

 

Крок 6: Приєднання робочих вузлів до кластера

 

На кожному з двох робочих вузлів використовуйте наданий раніше токен для приєднання до кластера. Виконайте наступну команду (замінивши на фактичний токен і хеш):

    sudo kubeadm join 192.168.1.100:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

Після успішного приєднання перевірте статус на головному вузлі:

    kubectl get nodes

Тепер ви повинні побачити робочі вузли в списку Ready.

 

 

 

 

Крок 7. Перевірка кластера

 

Виконайте наступну команду, щоб перевірити стан кластера:

    kubectl get nodes

Ви повинні побачити всі три вузли (головний і два робочих) в списку Ready.

 

 

 

 


Крок 8. Розгортання додатків

 

Тепер, коли Kubernetes кластер запущений і працює, можна приступати до розгортання додатків. Почніть з простого розгортання Nginx, щоб все протестувати:

    kubectl create deployment nginx --image=nginx
    kubectl expose deployment nginx --port=80 --type=NodePort

Для доступу до служби Nginx використовуйте NodePort, призначений для розгортання.

 

 

 

 


Висновок

Вітаємо! Ви успішно створили простий Kubernetes кластер з трьома VPS серверами. Ця конфігурація чудово підходить для навчання, оскільки демонструє, як Kubernetes керує контейнерами та координує їхню роботу на декількох вузлах. На цій основі ви можете почати експериментувати з розгортанням більш складних додатків, масштабуванням служб та вивченням таких функцій Kubernetes, як постійне сховище, діаграми Helm та багато іншого.

Вразливості WordPress та як їх виявити
Вразливості WordPress та як їх виявити

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

10 хв
Налаштування WireGuard на VPS
Налаштування WireGuard на VPS

Покрокова інструкція з налаштування WireGuard на VPS: встановлення, генерація ключів, конфігурація сервера та клієнта, запуск VPN і вирішення типових проблем. Ш...

14 хв