Ответ
Kubernetes (K8s) — это open-source платформа для оркестрации контейнеризированных приложений. Она автоматизирует их развертывание, масштабирование и управление.
Ключевые концепции и возможности:
- Кластер и ноды: Кластер состоит из управляющей плоскости (control plane) и рабочих нод, на которых запускаются поды (pods).
- Поды: Наименьшая вычислительная единица, содержащая один или несколько контейнеров.
- Самовосстановление: Kubernetes автоматически перезапускает упавшие контейнеры, заменяет и убивает не отвечающие поды, а также убирает поды, не прошедшие проверки готовности (readiness probes).
- Автомасштабирование: Horizontal Pod Autoscaler (HPA) динамически изменяет количество подов на основе метрик CPU, памяти или кастомных метрик.
- Объявления и контроллеры: Вы описываете желаемое состояние приложения (например, в Deployment), а контроллеры непрерывно работают для его поддержания.
- Сервисы и ингрессы: Сервисы обеспечивают стабильную сетевую точку доступа к набору подов, а ингрессы управляют внешним HTTP/HTTPS трафиком.
Пример простого Deployment для веб-приложения:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: web-app
template:
metadata:
labels:
app: web-app
spec:
containers:
- name: app-container
image: myregistry/web-app:latest
ports:
- containerPort: 8080
resources:
requests:
memory: "128Mi"
cpu: "250m"
limits:
memory: "256Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /health
port: 8080
В DevOps-практике Kubernetes стал стандартом для запуска микросервисных архитектур, обеспечивая переносимость между облаками и эффективное использование ресурсов.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶