Что такое Kubernetes и какие его основные компоненты?

Ответ

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