Готові зробити перші кроки у світі Kubernetes? Розгортання вашого першого застосунку на Kubernetes може здатися складним, але цей посібник спростить процес для вас. Дотримуючись цих кроків, ви зможете швидко запустити застосунок у вашому кластері Kubernetes. Давайте зануримось і зробимо вашу подорож у Kubernetes успішною!
Що ви дізнаєтесь з цього посібника
- Як контейнеризувати ваш застосунок для Kubernetes
- Як завантажити ваш Docker образ до контейнерного реєстру
- Як написати та застосувати маніфести Kubernetes
- Як усувати поширені помилки
Після завершення цього посібника ви будете знати, як розгорнути масштабовану та надійну програму на Kubernetes.
Передумови
Перед тим, як почати, переконайтесь, що у вас є:
- Кластер Kubernetes: Використовуйте Minikube для локального налаштування або хмарні сервіси, такі як Google Kubernetes Engine (GKE), Amazon EKS або Azure AKS.
- Встановлений kubectl: Інструмент командного рядка для взаємодії з вашим кластером Kubernetes.
- Встановлений Docker: Для контейнеризації вашого застосунку.
- Базові знання YAML: Маніфести Kubernetes використовують синтаксис YAML.
Крок 1: Контейнеризуйте ваш застосунок
Kubernetes працює з контейнеризованими застосунками. Якщо ви ще не контейнеризували ваш застосунок, ось як це зробити:
- Напишіть Dockerfile: Створіть
Dockerfile
у вашій директорії проекту. Наприклад, для Node.js застосунку:
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "app.js"]
EXPOSE 3000
- Побудуйте Docker образ:
docker build -t myapp:1.0 .
- Перевірте образ локально:
docker run -p 3000:3000 myapp:1.0
Крок 2: Завантажте образ до контейнерного реєстру
Щоб розгорнути на Kubernetes, ваш образ має бути у контейнерному реєстрі. Дотримуйтесь цих кроків:
- Увійдіть у Docker Hub:
docker login
- Позначте ваш образ:
docker tag myapp:1.0 /myapp:1.0
- Завантажте образ:
docker push /myapp:1.0
Крок 3: Створіть маніфести Kubernetes
Kubernetes використовує маніфести для визначення ресурсів. Вам знадобляться Deployment та Service.
Маніфест для Deployment
Deployment керує Pods вашого застосунку. Створіть файл deployment.yaml
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deployment
spec:
replicas: 2
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: /myapp:1.0
ports:
- containerPort: 3000
Маніфест для Service
Service експонує ваш застосунок. Створіть файл service.yaml
:
apiVersion: v1
kind: Service
metadata:
name: myapp-service
spec:
selector:
app: myapp
ports:
- protocol: TCP
port: 80
targetPort: 3000
type: LoadBalancer
Крок 4: Розгорніть на Kubernetes
Використовуйте kubectl
для застосування маніфестів і створення ресурсів у вашому кластері:
- Застосуйте Deployment:
kubectl apply -f deployment.yaml
- Застосуйте Service:
kubectl apply -f service.yaml
- Перевірте ресурси:
kubectl get all
Ви побачите ваші Pods, Deployment та Service, які працюють.
Крок 5: Доступ до вашого застосунку
Якщо ви використовуєте хмарний кластер, Service надасть зовнішній IP. Використовуйте команду:
kubectl get service myapp-service
Відкрийте зовнішній IP у вашому браузері, щоб отримати доступ до застосунку. Для локальних налаштувань використовуйте:
minikube service myapp-service
Поширені проблеми та усунення неполадок
- Pod аварійно завершується або не запускається: Перевірте журнали:
kubectl logs
2. Відлагодження Pods:
kubectl describe pod
3. Перегляд подій у кластері:
kubectl get events
Висновок
Вітаємо з розгортанням вашого першого застосунку на Kubernetes! Цей етап є початком вашої подорожі в Kubernetes.
З цією базовою інформацією ви тепер можете досліджувати більш складні теми, такі як масштабування, поетапні оновлення та моніторинг. Kubernetes — це потужна платформа, яка розвивається разом з вашими потребами, і її освоєння відкриє двері для управління застосунками на великій масштабі. Почніть експериментувати та піднімайте свої навички на новий рівень!
Перекладено з: Step-by-Step Guide to Deploying Your First Application on Kubernetes