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

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

    Политика загрузки образа

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

    Обзор политики загрузки образа

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

    Таблица значений imagePullPolicy:

    ValueDescription
    AlwaysВсегда загружать образ.
    IfNotPresentЗагружать образ только если его еще нет на node.
    NeverНикогда не загружать образ.

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

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

    Использование secret для загрузки образов

    Если вы используете Alauda Container Platform image registry, то у вашей service account pod уже должны быть правильные разрешения, и никаких дополнительных действий не требуется.

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

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

    Чтобы загрузить защищенный container из других private или защищенных registries, необходимо создать pull secret на основе учетных данных вашего container client, например Docker, и добавить его в вашу service account.

    Docker использует конфигурационный файл для хранения сведений об аутентификации, чтобы выполнять вход в защищенный или незащищенный registry:

    По умолчанию Docker использует $HOME/.docker/config.json.

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

    Создание pull secret

    Вы можете получить image pull secret, чтобы загружать образ из private container image registry или repository. См. Pull an Image from a Private Registry.

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

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

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

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

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

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

    Вместо связывания secret с service account вы также можете сослаться на него напрямую в определении 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>

    Пример workflow ArgoCD:

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