Не удалось извлечь изображение » / сообщения: 0.0.1″: ошибка rpc: code = Неизвестное описание = Ответ об ошибке от dae… Как исправить эту проблему с помощью docker image?

#linux #docker #kubernetes #debian

#linux #docker #kubernetes #debian

Вопрос:

Не удалось извлечь изображение «/ posts: 0.0.1»: ошибка rpc: code = Unknown desc = Ошибка ответ от демона: отказано в доступе к / posts, репозиторий не существует или может потребовать «входа в систему docker»: отказано: запрошенный доступ к ресурсу запрещен

Установлены Debian 10, minikube и kubectl и docker. если я запускаю docker с этим изображением — все в порядке.

павел@debian: ~ $ kubectl версия Версия клиента: версия.Информация{Major: «1», Minor: «19», GitVersion: «v1.19.4», GitCommit: «123», GitTreeState: «чистый», BuildDate: «2020-11-11T13:17:17Z», GoVersion: «go1.15.2″, Компилятор:»gc», Платформа: «linux / amd64»} Версия сервера: версия.Информация{Major: «1», Minor: «19», GitVersion: «v1.19.4», GitCommit: «123», GitTreeState: «чистый», BuildDate: «2020-11-11T13:09:17Z», GoVersion: «go1.15.2″, Компилятор:»gc», платформа: «linux / amd64»}

posts.yaml

 apiVersion: v1
kind: Pod
metadata:
  name: posts
spec:
  containers:
    - name: posts
      image: <mylogin>/posts:0.0.1
 

kubectl apply -f posts.yaml

debian: ~ $ kubectlописание сообщений pod

 Name:         posts
Namespace:    default
Priority:     0
Node:         minikube/192.168.49.2
Start Time:   Wed, 25 Nov 2020 07:06:47  0400
Labels:       <none>
Annotations:  <none>
Status:       Pending
IP:           172.17.0.4
IPs:
  IP:  172.17.0.4
Containers:
  posts:
    Container ID:   
    Image:          <mylogin>/posts:0.0.1
    Image ID:       
    Port:           <none>
    Host Port:      <none>
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-b9gkg (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  default-token-b9gkg:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-b9gkg
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                   From               Message
  ----     ------     ----                  ----               -------
  Normal   Scheduled  23m                   default-scheduler  Successfully assigned default/posts to minikube
  Normal   Pulling    21m (x4 over 23m)     kubelet            Pulling image "<mylogin>/posts:0.0.1"
  Warning  Failed     21m (x4 over 23m)     kubelet            Failed to pull image "<mylogin>/posts:0.0.1": rpc error: code = Unknown desc = Error response from daemon: pull access denied for <mylogin>/posts, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
  Warning  Failed     21m (x4 over 23m)     kubelet            Error: ErrImagePull
  Warning  Failed     7m53s (x63 over 23m)  kubelet            Error: ImagePullBackOff
  Normal   BackOff    2m58s (x84 over 23m)  kubelet            Back-off pulling image "<mylogin>/posts:0.0.1"
 

Комментарии:

1. Вы не указали в своем вопросе, есть ли у вас учетные данные в вашей конфигурации docker, и, следовательно, в нем просто отсутствует imagePullSecrets: , или если изображение действительно отсутствует в docker hub, и, следовательно, вы используете «локальный» образ, который может видеть ваш компьютер, но никто другой не может. В любом случае, это не вопрос программирования и, следовательно, относится к ServerFault.com

Ответ №1:

Minikube не может напрямую получить доступ к вашему локальному репозиторию docker. Существует несколько способов решения этой проблемы, и они подробно описаны здесь: https://minikube.sigs.k8s.io/docs/handbook/pushing /

Лично я просто добавил изображение в кэш Minikube с помощью minikube cache add <image tag> , и вам нужно изменить imagePullPolicy внутри вашего файла yaml на Never. Таким образом, по умолчанию будет использоваться локальное изображение, которое вы кэшировали в своем мини-кубе. Вы также можете перезагрузить свой кеш после его добавления. Это, вероятно, самый простой способ, если вы используете Docker для тестирования контейнеров перед добавлением их в кластер.

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

Ответ №2:

Имя изображения неверно. Правильно обновите имя и тег изображения. Если изображение размещено в частном реестре, вам необходимо создать секрет реестра, содержащий учетные данные для входа в ваш частный реестр. Перейдите по ссылке ниже для получения дополнительной помощи https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry /