Как вытащить образы докеров, размещенные в Реестре контейнеров Google через Kubernetes (kubernetes включен в Docker для настольных ПК) - PullRequest
0 голосов
/ 24 ноября 2018

У меня проблемы с извлечением изображений из GCR (извлекаются из моих развертываний). Я получил ImagePullBackOff ошибка.

Я уже следовал этому учебному пособию, шаг за шагом.

https://container -solutions.com / using-google-container-registry-with-kubernetes /

Однако, похоже, это не работает для меня.Я даже пытался использовать роль Storage Admin при создании ключа учетной записи службы, но он по-прежнему бесполезен.

При описании модуля я получил эту ошибку:

  Warning  Failed                 14s (x2 over 30s)  kubelet, docker-for-desktop  Failed to pull image "gcr.io/<project-name>/<image-name>": rpc error: code = Unknown desc = Error response from daemon: Get https://gcr.io/v2/<project-name>/<image-name>/manifests/latest: unknown: Unable to parse json key.
  Warning  Failed                 14s (x2 over 30s)  kubelet, docker-for-desktop  Error: ErrImagePull
  Normal   BackOff                2s (x3 over 29s)   kubelet, docker-for-desktop  Back-off pulling image "gcr.io/<project-name>/<image-name>"
  Warning  Failed                 2s (x3 over 29s)   kubelet, docker-for-desktop  Error: ImagePullBackOff

При посещении URL https://gcr.io/v2/project-name/image-name/manifests/latest я получил это:

// 20181124152036
// https://gcr.io/v2/project-name/image-name/manifests/latest

{
  "errors": Array[1][
    {
      "code": "UNAUTHORIZED",
      "message": "You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication"
    }
  ]
}

Определение определения:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: microservice-1-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: microservice-1
  template:
    metadata:
      labels:
        app: microservice-1
    spec:
      containers:
        - name: microservice-1
          image: gcr.io/project-name/image-name
          ports:
            - containerPort: 80

Примечания:

Мои развертывания могут извлекать образы, когда они размещены в док-концентраторе, проблема возникает только при извлечении образов в GCR.

Env

  • Windows 10
  • Docker версии 2.0.0.0-win78 (28905)
  • Kubernetes 1.10.3 (входит в докер для рабочего стола)

Я надеюсь, что вы можете помочь мне в этом,

Заранее спасибо

Ответы [ 2 ]

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

ОК нашел виновника, это как-то связано с Powershell и Командная строка .

Я перешел на использование Git Bash ивыполнив те же инструкции в этом руководстве

https://container -solutions.com / using-google-container-registry-registry-with-kubernetes /

, и это сработало!

Вероятно, виновник произошел при создании imagePullSecrets на Powershell и / или Командная строка .Возможно, что-то пошло не так при чтении файла json, связанного с кодировкой или чем-то еще.

Надеюсь, это кому-нибудь поможет.

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

Глядя на сообщение об ошибке, похоже, что у предоставленного вами файла json есть какая-то проблема unable to parse json file

Причина этого в том, что у вас есть файл json с разрывом (newline) иследовательно, невозможно распознать в тайне.

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

Docker Вход в gcr.io в Powershell

Надеюсь, это поможет.

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