Что такое манифест Kubernetes и из каких основных полей он состоит

Ответ

Манифест Kubernetes — это конфигурационный файл в формате YAML (реже JSON), который декларативно описывает желаемое состояние объекта в кластере, например, Deployment, Service или Pod.

Каждый манифест содержит четыре обязательных поля верхнего уровня:

  • apiVersion: Версия API Kubernetes, используемая для создания объекта (например, apps/v1, v1).
  • kind: Тип создаваемого объекта (например, Deployment, Pod, Service).
  • metadata: Данные, помогающие уникально идентифицировать объект, включая name (имя) и labels (метки).
  • spec: Спецификация желаемого состояния объекта. Содержимое этого поля зависит от kind.

Пример манифеста для Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2 # Желаемое количество работающих копий Pod'а
  selector:
    matchLabels:
      app: nginx # Deployment будет управлять Pod'ами с этой меткой
  template: # Шаблон для создания Pod'ов
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.21.6
        ports:
        - containerPort: 80

Манифест применяется к кластеру с помощью команды kubectl apply -f <имя-файла.yaml>.