58 подписчиков

Kubernetes Deploment

apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment # Уникальное имя для вашего Deployment
labels:
app: my-app # Метка для селектора сервиса и репликасета
spec:
replicas: 3 # Количество реплик Pod'ов, которые будут созданы и управляться Deployment
selector:
matchLabels:
app: my-app # Селектор для связи с Pod'ами (должен соответствовать метке в шаблоне Pod)
template:
metadata:
labels:
app: my-app # Метки для Pod'а
spec:
containers:
- name: my-app-container # Имя контейнера (уникальное внутри Pod'а)
image: nginx:latest # Образ контейнера, который будет развернут в Pod'ах
ports:
- containerPort: 80 # Порт контейнера, который будет открыт для обращений

Подробнее:

  • apiVersion: Указывает версию API, используемую для определения объекта Deployment. В данном случае, используется apps/v1, что соответствует версии apps API.
  • kind: Тип объекта, который мы хотим создать. В данном случае, это Deployment, что означает создание контроллера развертывания.
  • metadata: Метаданные Deployment, включая его имя и метки.
  • name: Уникальное имя Deployment, по которому его можно будет идентифицировать в кластере.
  • labels: Метки для селектора сервиса и репликасета. Это позволяет связать сервис с Deployment и использовать метки для выбора подходящих Pod'ов.
  • spec: Спецификация Deployment, определяющая параметры развертывания.
  • replicas: Количество реплик Pod'ов, которые будут созданы и управляться Deployment. В данном случае, мы указываем 3 реплики.
  • selector: Селектор для связи с Pod'ами. Он должен соответствовать метке в шаблоне Pod.
  • template: Шаблон Pod'а, который будет создан для каждой реплики.
  • metadata: Метаданные Pod'а, включая его метки.
  • labels: Метки для Pod'а. Они используются для связи с сервисами и для выбора Pod'ов селекторами.
  • spec: Спецификация Pod'а, включающая контейнеры, порты и другие параметры.
  • containers: Описание контейнеров, которые будут развернуты в Pod'ах.
  • name: Уникальное имя контейнера. В данном случае, имя контейнера устанавливается как my-app-container.
  • image: Образ контейнера, который будет развернут в Pod'ах. В данном случае, мы используем образ nginx:latest.
  • ports: Порты, которые контейнер открывает для обращений. В данном случае, устанавливается порт 80, что позволяет обращаться к контейнеру на этом порту.