我正在使用Jenkins的Kubernetes插件,从我的私有(private)Docker注册表中提取似乎出现了问题。

这是一个“不受信任的”(无SSL)港口专用注册表。

当我从注册表中提取另一个Jenkins管道时,我不得不在--insecure-registry http://10.3.31.105 --insecure-registry 10.3.31.105文件中设置/etc/systemd/system/docker.service.d/docker-options.conf
我想知道是否需要做一些特殊的事情才能使Kubernetes以类似的方式使用不受信任的注册表?

这是我正在使用的广告连播,也是我收到的错误:

[svc.jenkins@node1 ~]$ kubectl get pods
NAME                               READY     STATUS             RESTARTS   AGE
message-service-7d9494544d-fvnkl   0/1       ImagePullBackOff   0          1m
[svc.jenkins@node1 ~]$ kubectl logs message-service-7d9494544d-fvnkl
Error from server (BadRequest): container "message-service" in pod "message-service-7d9494544d-fvnkl" is waiting to start: trying and failing to pull image

但是,Jenkins作业成功退出:
Finished Kubernetes deployment
Finished: SUCCESS

最佳答案

您的工作流环境缺少Kubernetes secrets

Kubernetes使用这些 secret
作为由 Jenkins 执行时提取注册表镜像的凭据。
始终使注册表不 protected 是一个坏习惯,因此您应停止提供命令行参数以强制不安全的注册表。
要在管道中使用凭据,您无需执行任何特殊操作,
您就像访问Jenkins中存储的凭证一样访问它们。

我发现这个kubernetes-credentials-provider-plugin很有用,另一个工作
kubernetes-cd-plugin在这里。

关于docker - Kubernetes Jenkins插件-等待启动:尝试并无法拉取图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51073344/

10-16 23:08