Deployments (Развертывание) — это рабочие нагрузки, которые не хранят данные и состояния. Вы можете создавать Deployments в консоли CCE или с помощью команд kubectl.
Создайте кластер и проверьте, что он находится в статусе «Running».
Для обеспечения публичного доступа к рабочей нагрузке проверьте, что EIP или балансировщик нагрузки привязан хотя бы к одному узлу в кластере.
Если в состав пода входят несколько контейнеров, проверьте, что используемые порты не конфликтуют друг с другом.
Чтобы создать рабочую нагрузку:
Войдите в консоль управления Advanced:
В списке сервисов выберите Cloud Container Engine.
В консоли управления CCE выберите Clusters.
Нажмите на название созданного кластера.
В левом меню выберите Workloads.
Перейдите на вкладку Deployments.
Нажмите Create Workload.
Заполните поле Basic Info:
Параметр | Описание |
|---|---|
Workload Type | Выберите тип рабочей нагрузки Deployments. |
Workload Name | Укажите название рабочей нагрузки. |
Namespace | Выберите пространство имен рабочей нагрузки. По умолчанию — default. Чтобы создать новое, нажмите Create Namespace. |
Pods | Укажите количество подов в рабочей нагрузке. |
Time Zone Synchronization | Синхронизация времени. Позволяет контейнерам и узлам работать в одном часовом поясе. Эта функция зависит от локального диска, подключенного к контейнеру. Не изменяйте и не удаляйте часовой пояс. Активируйте этот параметр при необходимости. |
Cluster Name | Название кластера указано по умолчанию. |
(Опционально) Description | Описание рабочей нагрузки. Добавьте при необходимости. |
Заполните поле 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. |
Заполните параметры для создания сервиса в поле Service Settings.
Сервис (Service) используется для доступа к поду. Сервис с фиксированным IP-адресом перенаправляет трафик доступа к подам и выполняет балансировку нагрузки для этих подов.
Вы можете создать сервис после создания рабочей нагрузки.
Заполните поле Advanced Settings:
Параметр | Описание |
|---|---|
Upgrade | Настройте политику обновления рабочей нагрузки. |
Scheduling | |
Labels and Annotations | Настройте метки и аннотации. |
Toleration | Настройте допуски. |
DNS | Настройте DNS. |
Нажмите Create Workload.
После успешного создания рабочая нагрузка появится со статусом «Running» на вкладке Deployments.
В этой инструкции описано, как создать рабочую нагрузку с помощью kubectl. В качестве примера используется Nginx.
Используйте kubectl для подключения к кластеру.
Создайте и измените файл nginx-deployment.yaml.
«nginx-deployment.yaml» — это пример названия файла.
vi nginx-deployment.yaml
Пример YAML-файла:
apiVersion: apps/v1kind: Deploymentmetadata:name: nginxspec:replicas: 1selector:matchLabels:app: nginxstrategy:type: RollingUpdatetemplate:metadata:labels:app: nginxspec: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: Alwaysname: nginximagePullSecrets:- name: default-secret
Подробнее о параметрах YAML-файла можно посмотреть в таблице.
Чтобы создать развертывание, введите:
kubectl create -f nginx-deployment.yaml
В выводе команды появится:
deployment "nginx" created
Чтобы запросить статус развертывания, введите:
kubectl get deployment
В выводе команды появится:
NAME READY UP-TO-DATE AVAILABLE AGEnginx 1/1 1 1 4m5s
Описание параметров:
NAME — название запущенного в поде приложения.
READY — указывает количество доступных рабочих нагрузок.
UP-TO-DATE — указывает количество реплик, которые были обновлены.
AVAILABLE — указывает количество доступных подов.
AGE — продолжительность развертывания.
Если доступ к развертыванию будет осуществляться через сервисы ClusterIP или NodePort, добавьте соответствующий сервис. Подробнее об этом — в разделе Сети.