gpt4 book ai didi

docker - KNative Service无法从Docker HUB下载Hello World镜像

转载 作者:行者123 更新时间:2023-12-02 11:42:48 26 4
gpt4 key购买 nike

我正在使用Vagrant和Vbox在Mac上部署的Kubernetes上工作。
然后,我安装了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 HUB上构建并部署的docker应用程序。我的问题是,当我尝试使用 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可正确访问Internet,并执行以下命令:
kubectl run hello-k8s --generator=run-pod/v1 --image=sasadangelo/hello-k8s:latest --port=80

工作正常。

由于我是Knative的新手,所以我怀疑我在Knative配置中缺少某些内容。有人可以帮忙吗?

最佳答案

根据Mario的回复,我解决了配置Docker HUB凭据的问题。
这是procedure

我认为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

关于docker - KNative Service无法从Docker HUB下载Hello World镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60416312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com