Как создать развертывание в Kubernetes
На этой странице
- Предварительные условия
- Что мы будем делать
- Создать развертывание
- Заключение
Развертывания представляют собой набор идентичных модулей. Развертывание запускает несколько копий приложения. Он автоматически заменяет любые экземпляры, которые выходят из строя. Это помогает обеспечить постоянную работу одного или нескольких экземпляров приложения. Развертыванием управляет контроллер развертывания 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.