Создание Deployments

Deployments (Развертывание) — это рабочие нагрузки, которые не хранят данные и состояния. Вы можете создавать Deployments в консоли CCE или с помощью команд kubectl.

Перед началом работы

  • Создайте кластер и проверьте, что он находится в статусе «Running».

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

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

Создание развертывания в консоли ССЕ

Чтобы создать рабочую нагрузку:

  1. Войдите в консоль управления Advanced:

  2. Чтобы открыть список сервисов, нажмите Service List.

  3. Выберите Computing → Cloud Container Engine.

  4. В консоли управления CCE выберите Clusters.

  5. Нажмите на название созданного кластера.

  6. В левом меню выберите Workloads.

  7. Перейдите на вкладку Deployments.

  8. Нажмите Create Workload.

  9. Заполните поле Basic Info:

    Параметр

    Описание

    Workload Type

    Выберите тип рабочей нагрузки Deployments.

    Workload Name

    Укажите название рабочей нагрузки.

    Namespace

    Выберите пространство имен рабочей нагрузки.

    По умолчанию — default. Чтобы создать новое, нажмите Create Namespace.

    Pods

    Укажите количество подов в рабочей нагрузке.

    Time Zone Synchronization

    Синхронизация времени. Позволяет контейнерам и узлам работать в одном часовом поясе. Эта функция зависит от локального диска, подключенного к контейнеру. Не изменяйте и не удаляйте часовой пояс.

    Активируйте этот параметр при необходимости.

    Cluster Name

    Название кластера указано по умолчанию.

    (Опционально) Description

    Описание рабочей нагрузки.

    Добавьте при необходимости.

  10. Заполните поле Container Settings согласно таблице ниже. Чтобы настроить несколько контейнеров в поде, нажмите Add Container.

    Параметр

    Описание

    Basic Info

    Выполните базовые настройки контейнера.

    Lifecycle

    Настройте параметры жизненного цикла контейнера.

    Health Check

    Настройте Health Check контейнера.

    Environment Variables

    Настройте окружение.

    Data Storage

    Настройте хранение данных.

    Примечание

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

    Security Context

    Защита системы и контейнеров от воздействия.

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

    Logging

    Настройте сбор логов контейнера.

    Image Access Credential

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

    По умолчанию — default-secret. Этот секрет можно использовать для доступа к образам в SWR. Чтобы создать новый, нажмите Create Secret.

    GPU

    Инстанс рабочей нагрузки будет запланирован для узла с указанным типом графической карты GPU.

    По умолчанию — All.

  11. Заполните параметры для создания сервиса в поле Service Settings.

    Сервис (Service) используется для доступа к поду. Сервис с фиксированным IP-адресом перенаправляет трафик доступа к подам и выполняет балансировку нагрузки для этих подов.

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

  12. Заполните поле Advanced Settings:

    Параметр

    Описание

    Upgrade

    Настройте политику обновления рабочей нагрузки.

    Scheduling

    Настройте политику планирования (Affinity/Anti-affinity).

    Labels and Annotations

    Настройте метки и аннотации.

    Toleration

    Настройте допуски.

    DNS

    Настройте DNS.

    APM Settings

    Настройте параметры APM.

  13. Нажмите Create Workload.

После успешного создания рабочая нагрузка появится со статусом «Running» на вкладке Deployments.

Создание рабочей нагрузки через kubectl

В этой инструкции описано, как создать рабочую нагрузку с помощью kubectl. В качестве примера используется Nginx.

  1. Используйте kubectl для подключения к кластеру.

  2. Создайте и измените файл nginx-deployment.yaml.

    «nginx-deployment.yaml» — это пример названия файла.

    vi nginx-deployment.yaml
    

    Пример YAML-файла:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      strategy:
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - image: nginx    # If you use an image from an open-source image registry, enter the image name. If you use an image in My Images, obtain the image path from SWR.
            imagePullPolicy: Always
            name: nginx
          imagePullSecrets:
          - name: default-secret
    

    Подробнее о параметрах YAML-файла можно посмотреть в таблице.

  3. Чтобы создать развертывание, введите:

    kubectl create -f nginx-deployment.yaml
    

    В выводе команды появится:

    deployment "nginx" created
    
  4. Чтобы запросить статус развертывания, введите:

    kubectl get deployment
    

    В выводе команды появится:

    NAME           READY     UP-TO-DATE   AVAILABLE   AGE
    nginx          1/1       1            1           4m5s
    

    Описание параметров:

    • NAME — название запущенного в поде приложения.

    • READY — указывает количество доступных рабочих нагрузок.

    • UP-TO-DATE — указывает количество реплик, которые были обновлены.

    • AVAILABLE — указывает количество доступных подов.

    • AGE — продолжительность развертывания.

Примечание

Если доступ к развертыванию будет осуществляться через сервисы ClusterIP или NodePort, добавьте соответствующий сервис. Подробнее об этом — в разделе Сети.

Запустили Evolution free tier
для Dev & Test
Получить