Ответ
Kubernetes (K8s) — это открытая платформа для автоматизации развертывания, масштабирования и управления контейнеризированными приложениями. Она позволяет декларативно управлять инфраструктурой и абстрагироваться от конкретных серверов.
Основные компоненты (сущности):
- Pod: Минимальная развертываемая единица в Kubernetes. Pod может содержать один или несколько тесно связанных контейнеров.
- Service: Предоставляет стабильный сетевой эндпоинт (IP-адрес и DNS-имя) для доступа к группе подов. Служит для балансировки нагрузки.
- Deployment: Декларативно управляет жизненным циклом подов. Обеспечивает запуск нужного количества реплик и позволяет выполнять обновления (например, rolling updates).
- ConfigMap / Secret: Позволяют отделять конфигурационные данные и секреты (пароли, токены) от кода приложения.
- Ingress: Управляет внешним доступом к сервисам в кластере, обычно по HTTP/HTTPS. Позволяет настраивать маршрутизацию на основе хоста или пути.
Пример манифеста для создания Deployment
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3 # Запустить 3 экземпляра (пода)
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.21 # Используемый Docker-образ
ports:
- containerPort: 80