Как обращаться к kubernetes docker-registry - PullRequest
0 голосов
/ 30 марта 2019

Я установил docker-registry в Kubernetes через helm.

Я могу сделать docker push на docker push 0.0.0.0:5000/<my-container>:v1, используя port-forward.

Теперь, как мне ссылаться на изображения вреестр из deploy.yaml?

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: <my-container>-deployment-v1
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: <my-container>-deployment
        version: v1
    spec:
      containers:
      - name: <my-container>
        image: 0.0.0.0:5000/<my-container>:v1 # <<< ????
        imagePullPolicy: Always
        ports:
        - containerPort: 80
      imagePullSecrets:
        - name: private-docker-registry-secret

Это список моих контейнеров:

curl -X GET http://0.0.0.0:5000/v2/_catalog

Я получаю ImagePullBackOff при развертывании.

Я связал, используя имя внутренней службы и IP-адрес кластера, все еще не работает.

Затем попытался использовать секреты:

{
  "kind": "Secret",
  "apiVersion": "v1",
  "metadata": {
    "name": "running-buffoon-docker-registry-secret",
    "namespace": "default",
    "selfLink": "/api/v1/namespaces/default/secrets/running-buffoon-docker-registry-secret",
    "uid": "127c93c1-53df-11e9-8ede-a63ad724d5b9",
    "resourceVersion": "216488",
    "creationTimestamp": "2019-03-31T18:01:56Z",
    "labels": {
      "app": "docker-registry",
      "chart": "docker-registry-1.7.0",
      "heritage": "Tiller",
      "release": "running-buffoon"
    }
  },
  "data": {
    "haSharedSecret": "xxx"
  },
  "type": "Opaque"
}

И добавил секрет в файл deploy.yaml:

  imagePullSecrets:
    - name: running-buffoon-docker-registry-secret

Тогда я получаю:

image "x.x.x.x/:<my-container>v1": rpc error: code = Unknown desc = Error response from daemon: Get https://x.x.x.x/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

Ответы [ 2 ]

1 голос
/ 01 апреля 2019

В этом учебном пособии содержатся подробные сведения о настройке, сборке, маркировке, отправке и извлечении из реестра частных контейнеров, и в нем используется та же диаграмма Хелма, на которую вы ссылались.

https://www.katacoda.com/javajon/courses/kubernetes-pipelines/registries

1 голос
/ 31 марта 2019

Вам нужно получить cluster-ip вашего локального реестра Docker.

Вы найдете это на панели инструментов - просто посетите страницу модуля реестра, а затем перейдите к соответствующему service. Замените спецификации вашего изображения 0.0.0.0 на ip кластера. Также убедитесь, что port совпадает - обычно порт, предоставляемый службой реестра, отличается от фактического порта, доступного внутри кластера. Если в вашем реестре настроена аутентификация, вам также потребуется imagepullsecret.

Я писал о настройке minikube с локальным реестром - может быть полезно. https://amritbera.com/journal/minikube-insecure-registry.html

...