docker - 从 kubernetes 插件 / jenkins 中的 gcr 拉取 docker 图像的问题
问题描述
我有一个 gke 集群和一个正在运行的 jenkins master。我正在尝试开始构建。我正在使用带有由 kubernetes 插件(pod 模板)配置的从属的管道。我在 gcr(私人访问)中发布了我的詹金斯奴隶的自定义图像。我已将 gcr 的凭据(谷歌服务帐户)添加到詹金斯。尽管如此,jenkins/kubernetes 无法启动从属服务器,因为无法从 gcr 中提取图像。当我使用公共图像(jnlp)时没有问题。但是当我尝试使用来自 gcr 的图像时,kubernetes 说:
Failed to pull image "eu.gcr.io/<project-id>/<image name>:<tag>": rpc error: code = Unknown desc = Error response from daemon: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication
虽然 pod 与 gcr 在同一个项目中运行。
即使我使用来自 gcr 的图像,我也希望 jenkins 启动奴隶。
解决方案
即使 pod 在同一个项目的集群中运行,默认情况下也不会进行身份验证。
声明您已经设置了服务帐户,并且我假设 Jenkins 服务器中有一个提供的密钥。
如果您使用的是Google OAuth Credentials Plugin,您还可以使用Google Container Registry Auth Plugin对私有 GCR 存储库进行身份验证并提取图像。
推荐阅读
- sql-server - SQL Server - 查询以返回不冲突的计划
- javascript - 传单反向地理编码
- javascript - Geoserver : 如何从 geoTIFF 获取真正的 rgb 波段
- javascript - 隐藏 AmCharts 外部数据 URL
- javascript - 遍历嵌套 JSON 对象并添加属性
- javascript - 如何在openlayers 5中右键单击删除功能
- java - 如何在 Java 中绘制形状?
- python - 使用create_connection时Python套接字模块超时不一致
- regex - 印地语 Unicode 的 MSword 正则表达式
- android - 在蓝牙设备断开连接时显示通知