A Deployment это приложение Kubernetes, которое не сохраняет данные или состояние во время выполнения. Каждый pod одного Deployment идентичен, что обеспечивает беспрепятственное создание, удаление и замену без влияния на функциональность приложения. Deployments идеальны для безсостояния приложений, таких как web front-end servers и microservices, которые не требуют хранения данных. Они позволяют легко управлять жизненным циклом приложений, включая обновления, откаты и масштабирование.
Параметр | Описание |
|---|---|
Тип рабочей нагрузки | Выбрать Развертывание. Для получения подробной информации о различных типах рабочих нагрузок см Обзор рабочей нагрузки. |
Имя рабочей нагрузки | Введите имя рабочей нагрузки. Введите от 1 до 63 символов, начиная с маленькой буквы и заканчивая маленькой буквой или цифрой. Разрешены только маленькие буквы, цифры и дефисы (-). |
Пространство имен | Выберите пространство имен для рабочей нагрузки. Значение по умолчанию — по умолчанию. Вы также можете нажать Создать пространство имен чтобы создать его. Для получения подробностей см. Создание пространства имен. |
Поды | Введите количество подов рабочей нагрузки. |
Среда выполнения контейнера | Стандартный кластер CCE использует общую среду выполнения по умолчанию, тогда как кластер CCE Turbo поддерживает как общие, так и защищённые среды выполнения. Для получения подробностей о их различиях см. Защищённая среда выполнения и общая среда выполнения. |
Синхронизация часового пояса | Настройте, следует ли включать синхронизацию часового пояса. После включения этой функции контейнер и узел будут использовать один и тот же часовой пояс. Синхронизация часового пояса опирается на локальный диск, смонтированный в контейнере. Не изменяйте и не удаляйте локальный диск. Подробнее см. Настройка синхронизации часового пояса. |
Если вы настроили несколько контейнеров для пода, убедитесь, что порты, используемые каждым контейнером, не конфликтуют друг с другом, иначе нагрузка не сможет быть развернута.
Параметр | Описание |
|---|---|
Имя контейнера | Введите имя контейнера. |
Политика получения | Политика обновления образа или получения. Если вы выберете Всегда, образ извлекается из репозитория образов каждый раз. Если вы не выберете Всегда, существующий образ узла используется предпочтительно. Если образ не существует, образ извлекается из репозитория образов. |
Имя образа | Нажмите Выберите образ и выберите образ, используемый контейнером. Чтобы использовать сторонний образ, напрямую введите путь к образу. Убедитесь, что учетные данные доступа к образу могут использоваться для доступа к репозиторию образов. Для получения подробной информации см. Using Third-Party Images. |
Тег образа | Выберите тег образа для развертывания. |
CPU Квота |
Если Запрос и Лимит не указаны, квота не ограничена. Для получения дополнительной информации и рекомендаций о Запрос и Лимит, см. Настройка спецификаций контейнера. |
Квота памяти |
Если Запрос и Лимит не указаны, квота не ограничивается. Для получения дополнительной информации и рекомендаций по Запрос и Лимит, см. Настройка параметров контейнера. |
(Необязательно) GPU Квота | Настраивается только когда кластер содержит узлы GPU и CCE AI Suite (NVIDIA GPU) дополнение установлено.
Подробнее о том, как использовать GPU в кластере, см. Стандартное планирование GPU в Kubernetes. |
(Optional) Привилегированный контейнер | Программы в привилегированном контейнере имеют определённые привилегии. Если эта опция включена, контейнер получит привилегии. Например, привилегированные контейнеры могут управлять сетевыми устройствами на хост‑машине, изменять параметры ядра, получать доступ ко всем устройствам на узле. Для получения дополнительной информации см. Pod Стандарты безопасности. |
(Optional) Init Container | Использовать ли контейнер в качестве init контейнера. Init контейнер не поддерживает проверку состояния. Init контейнер — это специальный контейнер, который запускается до того, как в pod запускаются другие контейнеры приложений. Каждый pod может содержать несколько контейнеров. Кроме того, pod может содержать один или несколько init контейнеров. Контейнеры приложений в pod запускаются и работают только после завершения работы всех init контейнеров. Для получения подробной информации, см. Init контейнеры. |
(Optional) Параметр запуска | Добавьте параметры запуска для контейнера. Для получения подробной информации, см. Pod. CCE поддерживает следующие параметры запуска:
|
Если рабочая нагрузка содержит более одного pod, тома EVS не могут быть смонтированы.
Чтобы отключить сбор стандартных логов вывода текущей рабочей нагрузки, добавьте аннотацию kubernetes.AOM.log.stdout: [] в Метки и аннотации в Расширенные настройки области. Для получения подробной информации о том, как использовать эту аннотацию, см Таблица 1.
Service предоставляет внешний доступ для pod. При статическом IP-адресе Service перенаправляет трафик доступа к pod и автоматически балансирует нагрузку для этих pod.
Вы также можете создать Service после создания рабочей нагрузки. Для получения подробностей о Service разных типов см Обзор Service.
Параметр | Описание |
|---|---|
Обновление | Укажите режим обновления и параметры рабочей нагрузки. Поэтапное обновление и Замена обновления доступны. Для получения подробной информации см Обновление и откат рабочей нагрузки. |
Планирование | Настройте политики аффинности и антаффинности для гибкого планирования рабочих нагрузок. Предоставляются аффинность нагрузки и аффинность узла.
|
Toleration | Использование как taints, так и tolerations позволяет (не принудительно) разместить pod на узле с соответствующими taints и контролировать политики выселения pod после того, как узел, где находится pod, будет помечен taint. Для подробностей см Configuring Tolerance Policies. |
Labels and Annotations | Add labels or annotations for pods using key-value pairs. After the setting, click Confirm. For details about labels and annotations, see Configuring Labels and Annotations. |
DNS | Configure a separate DNS policy for the workload. For details, see DNS Configuration. |
Network Configuration |
|
Nginx используется как пример для описания того, как создать рабочую нагрузку с помощью kubectl.
vi nginx-deployment.yaml
Ниже приведён пример файла. Для получения подробной информации о конфигурации Deployment см. Официальная документация Kubernetes.
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 ImagesMy 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 находится в Запущено, это означает, что Deployment был создан.
NAME READY UP-TO-DATE AVAILABLE AGEnginx 1/1 1 1 4m5s
Параметры