繁体   English   中英

Kubernetes Jenkins插件-等待启动:尝试并无法拉取图像

[英]Kubernetes Jenkins plugin - waiting to start: trying and failing to pull image

我正在为Jenkins使用Kubernetes插件,从我的私有Docker注册表中拉出似乎有问题。

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

当我从注册表中提取另一个Jenkins管道时,我不得不在/etc/systemd/system/docker.service.d/docker-options.conf设置--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的秘密

当由詹金斯(Jenkins)执行时,Kubernetes将这些机密用作凭证来提取注册表映像。 保持注册表不受保护始终是一个坏习惯,因此您应停止提供命令行参数以强制不安全的注册表。 要在管道中使用凭据,您无需执行任何特殊操作,就可以像对Jenkins中存储的凭据一样进行访问。

我发现这个kubernetes-credentials-provider-plugin很有用,这里还有另一个有效的kubernetes-cd-plugin

实际上有点像您正在做的:编辑文件/etc/docker/daemon.json并添加:

{
    "insecure-registries" : [ "10.3.31.105:5000" ]
}

建议将daemon选项放在daemon.json ,而不仅仅是将它们添加到daemon.json daemon服务中。 您需要在Kubernetes集群中的每个节点上执行此操作。 这将使kubernetes从不受信任的注册表中提取图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM