Kubernetes вытащить из нескольких частных реестров докер - PullRequest
0 голосов
/ 27 ноября 2018

Чтобы использовать Docker-контейнер из частного репозитория Docker, kubernetes рекомендует создать секрет типа docker-registry и ссылаться на него в своем развертывании.

https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>

Затем в своей таблице рулевого управления или в файле развертывания kubernetes используйте imagePullSecrets

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: foo
spec:
  replicas: {{ .Values.replicaCount }}
  template: 
    spec:
      imagePullSecrets:
      - name: regcred
      containers:
      - name: foo
        image: foo.example.com

Это работает, но требует, чтобы все контейнеры былиполучены из того же реестра.

Как бы вы вытащили 2 контейнера из 2 реестров (например, при использовании коляски, которая хранится отдельно от основного контейнера)?

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: foo
spec:
  replicas: {{ .Values.replicaCount }}
  template: 
    spec:
      containers:
      - name: foo
        image: foo.example.com
        imagePullSecrets:
        - name: foo-secret
      - name: bar
        image: bar.example.com
        imagePullSecrets:
        - name: bar-secret

Я пытался создать 2 секрета foo-secret и bar-secret и ссылаться на каждый из них соответствующим образом, но я обнаружил, что он не может тянуть оба контейнера.

1 Ответ

0 голосов
/ 27 ноября 2018

Вы должны включить imagePullSecrets: непосредственно на уровне пакета, но у вас может быть несколько секретов там.

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: foo
spec:
  replicas: {{ .Values.replicaCount }}
  template: 
    spec:
      imagePullSecrets:
      - name: foo-secret
      - name: bar-secret
      containers:
      - name: foo
        image: foo.example.com/foo-image
      - name: bar
        image: bar.example.com/bar-image

Документация Kubernetes по этим примечаниям:

Если вам нужен доступ к нескольким реестрам, вы можете создать один секрет для каждого реестра.Kubelet объединит любые imagePullSecrets в один виртуальный .docker/config.json при извлечении изображений для ваших модулей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...