Чтобы использовать 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
и ссылаться на каждый из них соответствующим образом, но я обнаружил, что он не может тянуть оба контейнера.