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

Создание вашего первого развертывания в кластере Kubernetes


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

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

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

Мы можем создавать развертывание и управлять им, используя интерфейс командной строки \kubectl\ Kubernetes. Kubectl использует Kubernetes API для взаимодействия с кластером.

В жизненном цикле развертывания есть три этапа:

  1. Выполняется: Kubernetes помечает развертывание как выполняющееся, когда развертывание создает новый набор реплик, развертывание увеличивает свой новейший набор реплик или уменьшает свой старый набор реплик или новые модули. стать готовым или доступным
  2. Завершено: Kubernetes помечает развертывание как завершенное, когда все реплики, связанные с развертыванием, обновлены и доступны, а старые реплики для развертывания не запущены. .
  3. Ошибка. Это может произойти из-за недостаточной квоты, сбоев проверки готовности, ошибок извлечения изображения или недостаточных разрешений.

Предпосылки

  1. Аккаунт AWS (создайте его, если у вас его нет)
  2. Кластер Kubernetes

Примечание. Вы также можете использовать виртуальные машины для создания кластера, если не хотите пробовать инстансы AWS EC2.

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

  1. Создайте развертывание Kubernetes для Nginx.

Создайте развертывание Kubernetes для Nginx

Чтобы создать наше первое развертывание, давайте просто создадим новый каталог для создания нашего объекта/файла развертывания. Используйте следующую команду, чтобы создать новый каталог в вашей системе.

mkdir my-first-deployment
cd my-first-deployment/

Прежде чем продолжить, проверьте состояние кластера.

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

sudo kubectl version
sudo kubectl get nodes

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

Создайте файл \my-first-deployment.yml\ со следующим блоком кода.

vim my-first-deployment.yml

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

Здесь,

  • apiVersion: APIVersion определяет версию схемы этого представления объекта.
  • kind: тип объекта, который вы хотите создать, например Deployment, Service, Configmap и т. д.
  • имя: имя должно быть уникальным в пространстве имен.
  • метки: сопоставление строковых ключей и значений, которые можно использовать для организации и классификации объектов.
  • спецификация: спецификация желаемого поведения развертывания.
  • реплики: количество желаемых пакетов.
  • селектор: селектор ярлыков для модулей. Это развертывание затронет существующие наборы реплик, чьи модули будут выбраны. Он должен соответствовать меткам шаблона модуля.

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

sudo kubectl apply -f my-first-deployment.yml
sudo kubectl  get deployments

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

Вы можете получить сведения о модулях с помощью следующей команды.

sudo kubectl get pods

Если вы хотите узнать больше о развертывании, вы можете использовать эту команду \kubectl описать\, чтобы получить полную информацию о развертывании.

sudo kubectl get deployments
sudo kubectl describe  deployments nginx-deployment

Если вам больше не нужно развертывание, вы можете удалить его с помощью команды \kubectl delete\.

sudo kubectl  get deployments
sudo kubectl delete deployments nginx-deployment
sudo kubectl  get deployments

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

После удаления развертывания модули также удаляются.

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

sudo  kubectl  get pods

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

Заключение

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