Сбой развертывания Kubernetes из-за сбоя извлечения образа - PullRequest
0 голосов
/ 09 января 2019

При попытке развернуть свой пользовательский образ nginx из локального реестра в kubernetes, я вижу ниже ошибку в kubernetes-dashboard -

Не удалось получить изображение "myapp": ошибка rpc: code = Unknown desc = Ответ об ошибке от демона: хранилище myapp не найдено: не существует или нет доступа к запросу

Это шаги, которым я следовал -

1) Built my customer image using docker
2) kubectl run myapp --image=myapp --port=80 --image-pull-policy=IfNotPresent
3) kubectl expose deployment myapp --type=LoadBalancer --port=80 --target-port=80 --name=myapp

В Kubernetes-dashboard я вижу, что развертывание показывает сбой из-за вышеуказанной ошибки хранилища myapp не найден.

Я даже пытался добавить эти шаги, упомянутые в https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/

docker login
kubectl create secret docker-registry regcred --docker-server=https://index.docker.io/v1/ --docker-username=xxx --docker-password=xxx --docker-email=xxx

Но все та же проблема.

Что я должен сделать для pod, чтобы получить мой локальный репо в GKE. Ценю любую помощь. Спасибо.

Вот дополнительная информация, запрошенная rjdkolb -

xxx@cloudshell:~ (involuted-ratio-227118)$ kubectl describe pod myapp-7cf96cf48-vsqb5
Name:           myapp-7cf96cf48-vsqb5
Namespace:      default
Node:           gke-standard-cluster-1-default-pool-c7d671ed-br8j/10.142.0.3
Start Time:     Wed, 09 Jan 2019 22:28:58 +0530
Labels:         pod-template-hash=379527904
                run=myapp
Annotations:    kubernetes.io/limit-ranger=LimitRanger plugin set: cpu request for container myapp
Status:         Pending
IP:             10.48.8.9
Controlled By:  ReplicaSet/myapp-7cf96cf48
Containers:
  myapp:
    Container ID:
    Image:          mynginx
    Image ID:
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Requests:
      cpu:        100m
    Environment:  <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-8p622 (ro)
Conditions:
  Type           Status
  Initialized    True
  Ready          False
  PodScheduled   True
Volumes:
  default-token-8p622:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-8p622
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason                 Age              From                                                        Message
  ----     ------                 ----             ----                                                        -------
  Normal   Scheduled              4m               default-scheduler                                           Successfully assigned myapp-7cf96cf48-vsqb5 to gke-standard-cluster-1-default-pool-c7d671ed-br8j
  Normal   SuccessfulMountVolume  4m               kubelet, gke-standard-cluster-1-default-pool-c7d671ed-br8j  MountVolume.SetUp succeeded for volume "default-token-8p622"
  Normal   Pulling                2m (x4 over 4m)  kubelet, gke-standard-cluster-1-default-pool-c7d671ed-br8j  pulling image "mynginx"
  Warning  Failed                 2m (x4 over 4m)  kubelet, gke-standard-cluster-1-default-pool-c7d671ed-br8j  Failed to pull image "mynginx": rpc error: code = Unknown desc = Error response from daemon: repository mynginx not found: does not exist or no pull access
  Warning  Failed                 2m (x4 over 4m)  kubelet, gke-standard-cluster-1-default-pool-c7d671ed-br8j  Error: ErrImagePull
  Normal   BackOff                2m (x6 over 4m)  kubelet, gke-standard-cluster-1-default-pool-c7d671ed-br8j  Back-off pulling image "mynginx"
  Warning  Failed                 2m (x6 over 4m)  kubelet, gke-standard-cluster-1-default-pool-c7d671ed-br8j  Error: ImagePullBackOff

1 Ответ

0 голосов
/ 09 января 2019

Проблема в том, что ваш модуль работает на рабочем узле, а на рабочем узле отсутствует mynginx изображение.

Вам необходимо скопировать образ mynginx с главного узла на рабочий узел следующим образом:

Выполнить следующую команду на главном узле:

docker save -o <path for generated tar file> mynginx

Теперь скопируйте созданный tar-файл на рабочий узел и загрузите это изображение, используя следующую команду:

docker load -i <path to image tar file>

Это загрузит изображение mynginx на ваш рабочий узел и решит вашу проблему

...