Налаштування та запуск розгортання Kubernetes
Тепер, коли ваш застосунок стабільно працює всередині контейнерів, наступним викликом є оркестрація та керування цими контейнерами у масштабі. Саме тут на допомогу приходить Kubernetes.
Щоб розпочати, необхідно визначити бажаний стан вашого застосунку за допомогою файлів YAML. Один файл описує Deployment, який відповідає за оновлення та масштабування, а інший — Service, який відкриває ваш застосунок для мережі та робить його доступним для користувачів.
YAML (YAML Ain't Markup Language) — це формат конфігураційних файлів, зручний для читання людиною. Його часто використовують для опису інфраструктури, автоматизації процесів та збереження налаштувань застосунків.
Deployment гарантує, що потрібна кількість екземплярів застосунку (Pods) завжди працює, і спрощує впровадження оновлень або повернення до попередніх версій. Service відкриває ці контейнери для мережі та розподіляє вхідний трафік між ними.
Запуск Minikube
Minikube — це легкий інструмент, який дозволяє запускати локальний кластер Kubernetes на вашому комп’ютері. Він створює віртуальне середовище, де можна тестувати та досліджувати Kubernetes без необхідності використання хмарних сервісів.
Після встановлення Minikube та додавання його до змінної PATH вашої системи, відкрийте PowerShell (або інший термінал) і виконайте:
Ця команда перевіряє наявність Minikube та відображає встановлену версію.
Після підтвердження встановлення Minikube запустіть локальний кластер Kubernetes за допомогою:
Ця команда створює та запускає локальний кластер Kubernetes на вашому комп'ютері. Вона завантажує необхідні компоненти та запускає контрольну площину й робочі вузли.
Розгортання: Виведення застосунку
Почніть зі створення файлу deployment.yaml
. Deployment у Kubernetes гарантує, що певна кількість Pod (екземплярів застосунку) завжди працює, а також дозволяє оновлювати або відновлювати їх без простою.
deployment.yaml
У цьому маніфесті параметр replicas визначає, скільки екземплярів Pod має працювати одночасно — у цьому випадку, два. Щоб знати, якими Pod керувати, Deployment використовує комбінацію selector і labels: selector виступає фільтром для пошуку Pod із певною міткою, а шаблон Pod визначає цю мітку. Коли мітки збігаються, Deployment вважає ці Pod своїми та відповідає за підтримку їхньої кількості, оновлення та перезапуск у разі потреби.
Усі Pod працюють на порті 3000. Вони можуть використовувати один і той самий порт, оскільки кожен Pod функціонує у власному ізольованому мережевому просторі, тому між ними немає конфлікту.
Service: Мережевий доступ до застосунку
Після створення Deployment необхідно додати Service для забезпечення мережевого доступу та балансування навантаження між Pod. Створіть файл service.yaml
:
service.yaml
Цей маніфест визначає Service з іменем my-app-service
, який спрямовує трафік до Pod з міткою app: my-app
. Зовнішній порт — 80, запити пересилаються на порт 3000 всередині Pod.
Тип LoadBalancer
є важливим, оскільки забезпечує зовнішній доступ до застосунку та розподіляє трафік між Pod.
Розгортання застосунку в Kubernetes
Після підготовки YAML-файлів їх можна застосувати до кластера:
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
Команда kubectl apply -f
створює або оновлює ресурси в кластері на основі вмісту YAML-файлів.
Перевірка статусу
Після застосування конфігураційних файлів важливо переконатися, що все було розгорнуто відповідно до очікувань. Оскільки Pod та Сервіси потребують певного часу для запуску, почніть із виведення списку запущених Pod:
Якщо у файлі deployment.yaml
вказано replicas: 2
, у результатах має з’явитися два Pod.
Щоб переконатися, що Сервіс працює та доступний:
Це відобразить IP-адресу Сервісу та порти, через які можна отримати доступ до застосунку.
Отримання URL сервісу
Щоб отримати доступ до вашого застосунку, виконайте наступну команду у PowerShell або вашому терміналі:
Ця команда просить Minikube повернути URL, за яким ваш застосунок доступний. Minikube перевіряє створений вами сервіс (my-app-service
) і надає посилання, яке можна відкрити у браузері.
Масштабування застосунку
Kubernetes дозволяє легко змінювати кількість запущених Pod без зупинки застосунку.
Наприклад, щоб масштабувати з 2 до 4 реплік:
Повторний запуск kubectl get pods
тепер покаже чотири активні Pod.
Kubernetes надає потужні інструменти для керування контейнеризованими застосунками на будь-якому масштабі.
Deployment гарантує, що потрібна кількість Pod працює, і дозволяє легко виконувати оновлення або відкат.
Service відкриває застосунок для мережі та балансує вхідний трафік.
Конфігураційні файли YAML роблять налаштування зрозумілим і читабельним, а команди kubectl
дозволяють застосовувати та керувати цими конфігураціями в реальному часі.
1. Яке основне призначення Deployment у Kubernetes?
2. Чому кілька Pod можуть працювати на одному й тому ж номері порту (наприклад, 3000
) без конфліктів?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
What should I do if my pods are not starting as expected?
How can I update my application without downtime using Kubernetes?
Can you explain the difference between a Deployment and a Service in Kubernetes?
Awesome!
Completion rate improved to 3.7
Налаштування та запуск розгортання Kubernetes
Свайпніть щоб показати меню
Тепер, коли ваш застосунок стабільно працює всередині контейнерів, наступним викликом є оркестрація та керування цими контейнерами у масштабі. Саме тут на допомогу приходить Kubernetes.
Щоб розпочати, необхідно визначити бажаний стан вашого застосунку за допомогою файлів YAML. Один файл описує Deployment, який відповідає за оновлення та масштабування, а інший — Service, який відкриває ваш застосунок для мережі та робить його доступним для користувачів.
YAML (YAML Ain't Markup Language) — це формат конфігураційних файлів, зручний для читання людиною. Його часто використовують для опису інфраструктури, автоматизації процесів та збереження налаштувань застосунків.
Deployment гарантує, що потрібна кількість екземплярів застосунку (Pods) завжди працює, і спрощує впровадження оновлень або повернення до попередніх версій. Service відкриває ці контейнери для мережі та розподіляє вхідний трафік між ними.
Запуск Minikube
Minikube — це легкий інструмент, який дозволяє запускати локальний кластер Kubernetes на вашому комп’ютері. Він створює віртуальне середовище, де можна тестувати та досліджувати Kubernetes без необхідності використання хмарних сервісів.
Після встановлення Minikube та додавання його до змінної PATH вашої системи, відкрийте PowerShell (або інший термінал) і виконайте:
Ця команда перевіряє наявність Minikube та відображає встановлену версію.
Після підтвердження встановлення Minikube запустіть локальний кластер Kubernetes за допомогою:
Ця команда створює та запускає локальний кластер Kubernetes на вашому комп'ютері. Вона завантажує необхідні компоненти та запускає контрольну площину й робочі вузли.
Розгортання: Виведення застосунку
Почніть зі створення файлу deployment.yaml
. Deployment у Kubernetes гарантує, що певна кількість Pod (екземплярів застосунку) завжди працює, а також дозволяє оновлювати або відновлювати їх без простою.
deployment.yaml
У цьому маніфесті параметр replicas визначає, скільки екземплярів Pod має працювати одночасно — у цьому випадку, два. Щоб знати, якими Pod керувати, Deployment використовує комбінацію selector і labels: selector виступає фільтром для пошуку Pod із певною міткою, а шаблон Pod визначає цю мітку. Коли мітки збігаються, Deployment вважає ці Pod своїми та відповідає за підтримку їхньої кількості, оновлення та перезапуск у разі потреби.
Усі Pod працюють на порті 3000. Вони можуть використовувати один і той самий порт, оскільки кожен Pod функціонує у власному ізольованому мережевому просторі, тому між ними немає конфлікту.
Service: Мережевий доступ до застосунку
Після створення Deployment необхідно додати Service для забезпечення мережевого доступу та балансування навантаження між Pod. Створіть файл service.yaml
:
service.yaml
Цей маніфест визначає Service з іменем my-app-service
, який спрямовує трафік до Pod з міткою app: my-app
. Зовнішній порт — 80, запити пересилаються на порт 3000 всередині Pod.
Тип LoadBalancer
є важливим, оскільки забезпечує зовнішній доступ до застосунку та розподіляє трафік між Pod.
Розгортання застосунку в Kubernetes
Після підготовки YAML-файлів їх можна застосувати до кластера:
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
Команда kubectl apply -f
створює або оновлює ресурси в кластері на основі вмісту YAML-файлів.
Перевірка статусу
Після застосування конфігураційних файлів важливо переконатися, що все було розгорнуто відповідно до очікувань. Оскільки Pod та Сервіси потребують певного часу для запуску, почніть із виведення списку запущених Pod:
Якщо у файлі deployment.yaml
вказано replicas: 2
, у результатах має з’явитися два Pod.
Щоб переконатися, що Сервіс працює та доступний:
Це відобразить IP-адресу Сервісу та порти, через які можна отримати доступ до застосунку.
Отримання URL сервісу
Щоб отримати доступ до вашого застосунку, виконайте наступну команду у PowerShell або вашому терміналі:
Ця команда просить Minikube повернути URL, за яким ваш застосунок доступний. Minikube перевіряє створений вами сервіс (my-app-service
) і надає посилання, яке можна відкрити у браузері.
Масштабування застосунку
Kubernetes дозволяє легко змінювати кількість запущених Pod без зупинки застосунку.
Наприклад, щоб масштабувати з 2 до 4 реплік:
Повторний запуск kubectl get pods
тепер покаже чотири активні Pod.
Kubernetes надає потужні інструменти для керування контейнеризованими застосунками на будь-якому масштабі.
Deployment гарантує, що потрібна кількість Pod працює, і дозволяє легко виконувати оновлення або відкат.
Service відкриває застосунок для мережі та балансує вхідний трафік.
Конфігураційні файли YAML роблять налаштування зрозумілим і читабельним, а команди kubectl
дозволяють застосовувати та керувати цими конфігураціями в реальному часі.
1. Яке основне призначення Deployment у Kubernetes?
2. Чому кілька Pod можуть працювати на одному й тому ж номері порту (наприклад, 3000
) без конфліктів?
Дякуємо за ваш відгук!