Deployment — это приложение Kubernetes, которое не сохраняет данные или состояние во время работы. Каждый pod того же Deployment идентичен, что позволяет беспрепятственно создавать, удалять и заменять их без влияния на функциональность приложения. Deployment подходят для безсостояния приложений, таких как веб‑фронтенд‑серверы и микросервисы, которым не требуется хранение данных. Они обеспечивают простое управление жизненным циклом приложений, включая обновления, откаты и масштабирование.
Параметр | Описание |
|---|---|
Тип рабочей нагрузки | Выберите Deployment. Подробную информацию о различных типах рабочих нагрузок см. в Workload Overview. |
Имя рабочей нагрузки | Введите имя для рабочей нагрузки. Введите от 1 до 63 символов, начинающихся со строчной буквы и заканчивающихся строчной буквой или цифрой. Допускаются только строчные буквы, цифры и дефисы (-). |
Namespace | Выберите пространство имён для рабочей нагрузки. Значение по умолчанию — default. Вы также можете нажать Create Namespace, чтобы создать его. Подробнее см. Creating a Namespace. |
Pods | Введите количество pod'ов рабочей нагрузки. |
Container Runtime | Кластер CCE стандартного типа использует общий runtime по умолчанию, тогда как кластер CCE Turbo поддерживает как общий, так и защищённый runtime. Подробнее о различиях см. Secure Runtime and Common Runtime. |
Time Zone Synchronization | Укажите, включить ли синхронизацию часового пояса. После включения этой функции контейнер и узел будут использовать один и тот же часовой пояс. Синхронизация часового пояса опирается на локальный диск, смонтированный в контейнер. Не изменяйте и не удаляйте локальный диск. Подробнее см. Configuring Time Zone Synchronization. |
Если вы настроили несколько контейнеров для pod‑а, убедитесь, что порты, используемые каждым контейнером, не конфликтуют друг с другом, иначе рабочая нагрузка не будет развернута.
Parameter | Description |
|---|---|
Container Name | Введите имя контейнера. |
Pull Policy | Политика обновления или получения образа. Если вы выбираете Always, образ загружается из репозитория образов каждый раз. Если вы не выбираете Always, предпочтительно используется существующий образ узла. Если образ не существует, образ загружается из репозитория образов. |
Image Name | Нажмите Select Image и выберите образ, используемый контейнером. Чтобы использовать сторонний образ, непосредственно введите путь к образу. Убедитесь, что image access credential может использоваться для доступа к репозиторию образов. Подробности см. в Using Third-Party Images. |
Image Tag | Выберите тег образа для развертывания. |
CPU Quota |
Если Request и Limit не указаны, квота не ограничивается. Для получения дополнительной информации и рекомендаций по Request и Limit см. Configuring Container Specifications. |
Memory Quota |
Если Request и Limit не указаны, квота не ограничивается. Для получения дополнительной информации и рекомендаций о Request и Limit см. Configuring Container Specifications. |
(Optional) GPU Quota | Настраивается только когда кластер содержит GPU‑узлы и установлен аддон CCE AI Suite (NVIDIA GPU).
Для получения подробной информации о том, как использовать GPU в кластере, см. Default GPU Scheduling in Kubernetes. |
(Optional) Privileged Container | Программы в привилегированном контейнере обладают определёнными привилегиями. Если эта опция включена, контейнеру будут назначены привилегии. Например, привилегированные контейнеры могут управлять сетевыми устройствами на хост‑машине, изменять параметры ядра, получать доступ ко всем устройствам узла. Для получения дополнительной информации см. Pod Security Standards. |
(Optional) Init Container | Определяет, использовать ли контейнер в качестве init‑контейнера. Init‑контейнер не поддерживает проверку состояния. Init‑контейнер — это специальный контейнер, который запускается до того, как будут запущены другие контейнеры приложений в pod. Каждый pod может содержать несколько контейнеров. Кроме того, pod может содержать один или несколько init‑контейнеров. Контейнеры приложений в pod запускаются и работают только после завершения выполнения всех init‑контейнеров. Для получения подробной информации см. Init Containers. |
(Optional) Run Option | Добавьте параметры запуска для контейнера. Для получения подробной информации см. Pod. CCE поддерживает следующие параметры запуска:
|
Если рабочая нагрузка содержит более одного pod, тома EVS монтировать нельзя.
Чтобы отключить сбор журналов стандартного вывода текущей рабочей нагрузки, добавьте аннотацию kubernetes.AOM.log.stdout: [] в Labels and Annotations в разделе Advanced Settings. Подробнее о том, как использовать эту аннотацию, см. Table 1.
Сервис обеспечивает внешний доступ к pod. При наличии статического IP-адреса сервис перенаправляет трафик доступа к pod и автоматически балансирует нагрузку между этими pod.
Вы также можете создать Service после создания workload. Для получения подробной информации о Service разных типов см. Service Overview.
Параметр | Описание |
|---|---|
Обновление | Укажите режим обновления и параметры workload. Rolling upgrade и Replace upgrade доступны. Для получения подробной информации см. Upgrading and Rolling Back a Workload. |
Планирование | Настройте политики affinity и anti-affinity для гибкого планирования workload. Предоставляются политики load affinity и node affinity.
|
Толерантность | Использование как taints, так и tolerations позволяет (не принудительно) планировать pod на узел с соответствующими taints и управлять политиками выселения pod после того, как узел, на котором находится pod, будет помечен taint. Для получения подробной информации см. Configuring Tolerance Policies. |
Метки и аннотации | Добавьте метки или аннотации для pod, используя пары ключ‑значение. После настройки нажмите Confirm. Для получения подробной информации о метках и аннотациях см. Configuring Labels and Annotations. |
DNS | Настройте отдельную политику DNS для рабочей нагрузки. Для получения подробной информации см. DNS Configuration. |
Настройка сети |
|
Nginx используется в качестве примера для описания того, как create a workload using kubectl.
vi nginx-deployment.yaml
Ниже приведён пример файла. Для получения подробной информации о конфигурации Deployment см. Kubernetes official documentation.
apiVersion: apps/v1kind: Deployment # Workload typemetadata:name: nginx # Workload namenamespace: default # Namespace where the workload is locatedspec:replicas: 1 # Number of pods in the specified workloadselector:matchLabels: # The workload manages pods based on the pod labels in the label selector.app: nginxtemplate: # Pod configurationmetadata:labels: # Pod labelsapp: nginxspec:containers:- image: nginx:latest # Specify a container image. If you use an image in My Images , obtain the image path from SWR.imagePullPolicy: Always # Image pull policyname: nginx # Container nameresources: # Node resources allocated to the containerrequests: # Requested resourcescpu: 250mmemory: 512Milimits: # Resource limitcpu: 250mmemory: 512MiimagePullSecrets: # Secret for image pull- name: default-secret
kubectl create -f nginx-deployment.yaml
Если отображается информация, аналогичная следующей, Deployment создаётся:
deployment.apps/nginx created
kubectl get deployment
Если Deployment находится в состоянии Running, это означает, что Deployment был создан.
NAME READY UP-TO-DATE AVAILABLE AGEnginx 1/1 1 1 4m5s
Параметры