Сервис KNative не может загрузить образ Hello World с Docker HUB - PullRequest
1 голос
/ 26 февраля 2020

Я работаю над Kubernetes, который я развернул на своем Ma c, используя Vagrant и Vbox. Затем я установил Istio, Knative Serving и Eventing.

Затем я определил файл service.yaml со следующим содержимым:

---
apiVersion: v1
kind: Namespace
metadata:
  name: hello-k8s-ns

---
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: hello-k8s
  namespace: hello-k8s-ns
spec:
  template:
    spec:
      containers:
        - image: sasadangelo/hello-k8s

, где sasadangelo / hello-k8s - Hello World! !! Приложение docker, которое я создал и развернул на Docker HUB. Моя проблема в том, что когда я пытаюсь развернуть его с помощью команды kubect apply, все идет хорошо, но Pod не развертывается. Я вижу, что служба развернута, но когда я анализирую ее с помощью kubect describe, я вижу следующее сообщение об ошибке:

Revision "hello-k8s-lm6hk" failed with message: Unable to fetch image "sasadangelo/hello-k8s": failed to resolve image to digest: failed to fetch image information: Get https://index.docker.io/v2/: dial tcp 54.72.52.58:443: connect: connection refused.

Мне не понятно, почему он не может загрузить образ с Docker HUB. Моя Vagrant VM правильно обращается к Inte rnet и команда:

kubectl run hello-k8s --generator=run-pod/v1 --image=sasadangelo/hello-k8s:latest --port=80

работает нормально.

Поскольку я новичок в Knative, я подозреваю, что чего-то не хватает в конфигурации Knative. Кто-нибудь может помочь?

1 Ответ

1 голос
/ 28 февраля 2020

Согласно ответу Марио, я решил настроить Docker учетные данные HUB. Здесь процедура .

Я думаю, что KNative по какой-то причине не просто извлекает образ, но выполняет некоторые дополнительные действия (например, проверяет дайджест), которые запрашивают Docker аутентификацию HUB.

Согласно связанной процедуре, если вы дадите команду:

kubectl create secret mysecret ...

Затем вам нужно изменить service.yaml следующим образом:

---
apiVersion: v1
kind: Namespace
metadata:
  name: hello-k8s-ns

---
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: hello-k8s
  namespace: hello-k8s-ns
spec:
  template:
  spec:
    containers:
      - image: sasadangelo/hello-k8s
  imagePullSecrets:  # <--------------- Add this line
    - name: docker-hub-registry # <---- Add this line
...