Поиск по сайту:

Как создать развертывание в Kubernetes


На этой странице

  1. Предварительные условия
  2. Что мы будем делать
  3. Создать развертывание
  4. Заключение

Развертывания представляют собой набор идентичных модулей. Развертывание запускает несколько копий приложения. Он автоматически заменяет любые экземпляры, которые выходят из строя. Это помогает обеспечить постоянную работу одного или нескольких экземпляров приложения. Развертыванием управляет контроллер развертывания Kubernetes. В развертываниях используется шаблон модуля, который содержит спецификацию для своих модулей.

Развертывание Kubernetes — это ресурсный объект в Kubernetes, который предоставляет декларативные обновления для приложений.

Дополнительные сведения о спецификациях развертывания см. в документации по API Kubernetes.

В этой статье мы научимся создавать деплоймент в Kubernetes и выполнять над ним операции.

Предпосылки

Кластер Kubernetes по крайней мере с 1 рабочим узлом.
Если вы хотите научиться создавать кластер Kubernetes, нажмите здесь. Это руководство поможет вам создать кластер Kubernetes с 1 мастером и 2 узлами на экземплярах AWS Ubuntu 18l04 EC2.

Что мы будем делать

Создать развертывание

Создать развертывание

Создайте файл и добавьте в него следующее определение развертывания.

vim my-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: httpd-frontend
  name: httpd-frontend
spec:
  replicas: 1
  selector:
    matchLabels:
      app: httpd-frontend
  template:
    metadata:
      labels:
        app: httpd-frontend
    spec:
      containers:
      - image: httpd:2.4-alpine
        name: httpd



В этом примере:

  • Будет создано развертывание с именем httpd-frontend , указанное в поле metadata: name .
  • При развертывании будет создана 1 реплика модуля, указанная в поле replicas .
  • Шаблон модуля или поле spec: template указывает, что его модули помечены app: httpd-frontend.
  • Спецификация шаблонов пода или поле template: spec указывает, что поды запускают один контейнер, httpd, который запускает образ httpd: версии 2.4-alpine.

Используйте следующую команду для создания развертывания

kubectl create -f my-deployment.yaml

После создания развертывания вы можете получить его сведения с помощью следующей команды.

kubectl get deployment | grep httpd-frontend

Развертывание создало набор реплик, чтобы просмотреть его, используйте следующую команду.

kubectl get replicaset | grep httpd-frontend

Поды, созданные набором реплик, могут быть перечислены с помощью следующей команды, которая выведет список подов, соответствующих указанному имени.


kubectl get pods | grep httpd-frontend

Теперь вы можете протестировать автоматическое создание модуля, если существующий не работает, удалив его.

Чтобы удалить существующий модуль, используйте следующие команды.


kubectl get pods | grep httpd-frontend
kubectl delete pod httpd-frontend-74fd6fd8cd-8nj2s
kubectl get pods | grep httpd-frontend

На приведенном выше снимке экрана видно, что модуль был создан после удаления существующего модуля.

Теперь, даже если набор реплик будет удален, развертывание создаст его.

Чтобы проверить это, удалите набор реплик с помощью следующей команды.


kubectl get replicaset | grep httpd-frontend
kubectl delete replicaset httpd-frontend-74fd6fd8cd
kubectl get replicaset | grep httpd-frontend

На приведенном выше снимке экрана видно, что даже после удаления набора реплик он был создан.

Чтобы увидеть немного больше информации о модуле, в команде можно использовать \-o wide\ следующим образом.

kubectl get pods | grep httpd-frontend
kubectl get pods -o wide | grep httpd-frontend

Чтобы получить полную информацию о модуле, его можно описать с помощью следующей команды.

kubectl describe pod httpd-frontend

Теперь, если вам больше не нужно развертывание приложения с помощью развертывания, его можно удалить, удалив развертывание.

Используйте следующие команды, чтобы удалить развертывание.

kubectl get deployment | grep httpd-frontend
kubectl delete deployment httpd-frontend
kubectl get deployment | grep httpd-frontend

На приведенном выше снимке экрана видно, что после удаления развертывания оно не было создано. Но если вы удалите модуль или набор реплик, которые были созданы в ходе развертывания, они будут созданы.

Заключение

В этой статье мы научились создавать развертывание и пробовали операцию удаления для Pod, Replicaset и Deployment.