• Русский
  • Управление образами

    С помощью Alauda Container Platform вы можете работать с образами; в зависимости от того, где расположены реестры образов, какие требования к аутентификации предъявляются к этим реестрам и как вы хотите, чтобы выполнялись сборки и развертывания.

    Политика извлечения образа

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

    Обзор политики извлечения образа

    Когда Alauda Container Platform создает контейнеры, она использует параметр контейнера imagePullPolicy, чтобы определить, нужно ли извлекать образ перед запуском контейнера. Для imagePullPolicy возможны три значения:

    Значения таблицы imagePullPolicy:

    ЗначениеОписание
    AlwaysВсегда извлекать образ.
    IfNotPresentИзвлекать образ только если его еще нет на узле.
    NeverНикогда не извлекать образ.

    Если для контейнера не указан параметр imagePullPolicy, Alauda Container Platform задает его на основе тега образа:

    1. Если тег — latest, Alauda Container Platform по умолчанию устанавливает imagePullPolicy в Always.
    2. В противном случае Alauda Container Platform по умолчанию устанавливает imagePullPolicy в IfNotPresent.

    Использование секретов для извлечения образов

    Если вы используете реестр образов Alauda Container Platform, ваша учётная запись ServiceAccount pod уже должна иметь правильные разрешения, и никаких дополнительных действий не требуется.

    Однако в других сценариях, например при ссылке на образы между проектами Alauda Container Platform или из защищенных реестров, требуются дополнительные шаги настройки.

    Разрешение pod на использование образов из других защищенных реестров

    Чтобы извлекать защищенный контейнер из других private или защищенных реестров, необходимо создать pull secret из учетных данных вашего контейнерного клиента, например Podman, и добавить его в вашу учетную запись ServiceAccount.

    Контейнерные клиенты используют конфигурационный файл для хранения данных аутентификации при входе в защищенный или незащищенный реестр:

    Эти файлы хранят информацию об аутентификации, если вы ранее выполняли вход в защищенный или незащищенный реестр.

    Создание pull secret

    Вы можете получить secret для извлечения образа, чтобы извлечь образ из private реестра контейнерных образов или репозитория. Дополнительные сведения см. в Pull an Image from a Private Registry.

    Использование pull secret в workload

    Вы можете использовать pull secret, чтобы разрешить workload извлекать образы из private реестра, одним из следующих способов:

    • Связав secret с ServiceAccount, что автоматически применяет secret ко всем pod, использующим эту учетную запись ServiceAccount.
    • Определив imagePullSecrets в спецификации pod, что полезно для таких сред, как GitOps или ArgoCD.

    Вы можете использовать secret для извлечения образов для pod, добавив secret в вашу учетную запись ServiceAccount. Обратите внимание, что имя учетной записи ServiceAccount должно совпадать с именем учетной записи ServiceAccount, которую использует pod.

    Пример вывода:

    apiVersion: v1
    imagePullSecrets:
    - name: default-cfg-123456
    - name: <pull_secret_name>
    kind: ServiceAccount
    metadata:
      name: default
      namespace: default
    secrets:
    - name: <pull_secret_name>

    Вместо привязки secret к учетной записи ServiceAccount вы можете напрямую ссылаться на него в определении pod или workload. Это полезно для рабочих процессов GitOps, таких как ArgoCD. Например:

    Пример спецификации pod:

    apiVersion: v1
    kind: Pod
    metadata:
      name: <secure_pod_name>
    spec:
      containers:
      - name: <container_name>
        image: your.registry.io/my-private-image
      imagePullSecrets:
      - name: <pull_secret_name>

    Пример рабочего процесса ArgoCD:

    apiVersion: argoproj.io/v1alpha1
    kind: Workflow
    metadata:
      generateName: <example_workflow>
    spec:
      entrypoint: <main_task>
      imagePullSecrets:
      - name: <pull_secret_name>