Ответ
Манифест 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>
.