Извлечение частных образов Docker в Helm Charts

Чтобы получить частный образ Docker в диаграммах Helm, вы можете использовать один из следующих методов:

  1. Использование ImagePullSecrets: Helm позволяет указать секрет получения изображения в манифесте развертывания, что позволяет извлекать изображения из частных репозиториев. Чтобы использовать этот метод, вам необходимо создать секрет Kubernetes, содержащий ваши учетные данные реестра Docker, а затем сослаться на него в диаграмме Helm.

    apiVersion: v1
    kind: Secret
    metadata:
     name: my-pull-secret
     namespace: my-namespace
    data:
     .dockerconfigjson: <base64-encoded-docker-config>

    В манифесте развертывания добавьте поле imagePullSecrets, чтобы указать секрет:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
     name: my-deployment
    spec:
     template:
       spec:
         containers:
           - name: my-container
             image: my-private-image:tag
         imagePullSecrets:
           - name: my-pull-secret
  2. Использование значений Helm. Другой подход — передать учетные данные реестра Docker как значения Helm. Вы можете определить учетные данные в файле значений Helm и ссылаться на них в манифесте развертывания диаграммы.

    # values.yaml
    dockerRegistry:
     username: my-username
     password: my-password
     server: my-docker-registry.com

    В манифесте развертывания используйте значения в качестве переменных среды:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
     name: my-deployment
    spec:
     template:
       spec:
         containers:
           - name: my-container
             image: {{ .Values.dockerRegistry.server }}/my-private-image:tag
             env:
               - name: REGISTRY_USERNAME
                 value: {{ .Values.dockerRegistry.username }}
               - name: REGISTRY_PASSWORD
                 value: {{ .Values.dockerRegistry.password }}
  3. Использование частного репозитория изображений. Если у вас есть частный репозиторий изображений, вы можете настроить Helm для аутентификации с его помощью. Некоторые репозитории образов, например Azure Container Registry или AWS Elastic Container Registry, предоставляют механизмы аутентификации, которые можно интегрировать с Helm.

    Точные шаги по настройке аутентификации зависят от конкретного используемого вами репозитория изображений. Вы можете обратиться к документации вашего поставщика репозитория изображений за инструкциями по аутентификации Helm в репозитории.