Как исправить «Не удалось вытащить изображение» на microk8s - PullRequest
2 голосов
/ 30 октября 2019

Я пытаюсь следовать учебным курсам по началу работы с докером, но я застреваю, когда вам приходится работать с kuberetes. Я использую microk8s для создания кластеров.

Мой Dockerfile:

FROM node:6.11.5WORKDIR /usr/src/app
COPY package.json .
RUN npm install
COPY . .

CMD [ "npm", "start" ]

Мой bb.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: bb-demo
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      bb: web
  template:
    metadata:
      labels:
        bb: web
    spec:
      containers:
      - name: bb-site
        image: bulletinboard:1.0
---
apiVersion: v1
kind: Service
metadata:
  name: bb-entrypoint
  namespace: default
spec:
  type: NodePort
  selector:
    bb: web
  ports:
  - port: 8080
    targetPort: 8080
    nodePort: 30001

Я создаю изображение с

docker image build -t bulletinboard:1.0 .

И я создаю модуль и службу с помощью:

microk8s.kubectl apply -f bb.yaml

Модуль создается, но, когда я ищу состояние своих модулей с помощью

microk8s.kubectl get all

Это говорит:

NAME                           READY   STATUS             RESTARTS   AGE
pod/bb-demo-7ffb568776-6njfg   0/1     ImagePullBackOff   0          11m

NAME                    TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
service/bb-entrypoint   NodePort    10.152.183.2   <none>        8080:30001/TCP   11m
service/kubernetes      ClusterIP   10.152.183.1   <none>        443/TCP          4d

NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/bb-demo   0/1     1            0           11m

NAME                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/bb-demo-7ffb568776   1         1         0       11m

Кроме того, когда я смотрю на панель управления kubernetes, он говорит:

Не удалось получить изображение "bulletinboard: 1.0": ошибка rpc: code = Unknown desc= не удалось разрешить образ «docker.io/library/bulletinboard:1.0»: нет доступной конечной точки реестра: доступ по запросу запрещен, хранилище не существует или может потребоваться авторизация: сообщение сервера: недостаточный_область: ошибка авторизации

Q: Почему я получаю эту ошибку? Я просто следую учебному пособию, ничего не пропуская.

Я уже вошел в систему с докером.

Ответы [ 2 ]

3 голосов
/ 30 октября 2019

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

После этого вам необходимо войти в Docker Hub из командной строки.

docker login

Отметьте свое изображение так, чтобы оно попадало в ваш репозиторий Docker Hub.

docker tag bulletinboard:1.0 <your docker hub user>/bulletinboard:1.0

Переместите ваше изображение в Docker Hub

docker push <your docker hub user>/bulletinboard:1.0

Обновите файл yaml, чтобы отразить новый репозиторий изображений в Docker Hub.

spec: containers: - name: bb-site image: <your docker hub user>/bulletinboard:1.0

повторно применить файл yaml

microk8s.kubectl apply -f bb.yaml

0 голосов
/ 13 ноября 2019

Предлагаемое решение - добавить imagePullPolicy: Never к вашему Развертыванию согласно ответу здесь , но это не сработало для меня, поэтому я следовал этому руководству, так как работалв местном развитии.

...