我一直在尝试使用私有初始化容器映像运行部署,但收效甚微,我总是收到此错误:
Failed to pull image "private/app": Error: image private/app:latest not found
Error syncing pod, skipping: failed to "StartContainer" for "app" with ErrImagePull: "Error: image private/app:latest not found"
这是我的部署:
"kind": "Deployment"
"apiVersion": "extensions/v1beta1"
"metadata":
"name": "tomcat"
"creationTimestamp": null
"spec":
"replicas": 1
"template":
"metadata":
"creationTimestamp": null
"labels":
"service": "tomcat"
"annotations":
"pod.beta.kubernetes.io/init-containers": '[
{
"name": "app",
"image": "private/app",
"imagePullPolicy": "IfNotPresent"
}
]'
"spec":
"containers":
- "name": "tomcat"
"image": "private/tomcat"
"ports":
- "containerPort": 8080
"protocol": "TCP"
"imagePullSecrets":
- "name": "my-secret"
"restartPolicy": "Always"
"strategy": {}
"status": {}
我也尝试了这里建议的更改kubernetes 使用私有仓库初始化容器 https://stackoverflow.com/questions/42422892/kubernetes-init-containers-using-a-private-repo:
"pod.beta.kubernetes.io/init-containers": '[
{
"name": "app",
"image": "private/app",
"imagePullPolicy": "IfNotPresent",
"imagePullSecrets": [
{
"name": "my-secret"
}
]
}
]'
但还是什么都没有...
请注意,我已经在没有初始化容器的情况下测试了此部署,并且图像拉取成功。
另请注意,这是我的实际配置的简化版本,在实际配置中,容器和一些环境变量都有卷安装。
如何为 init-container 配置“imagePullSecrets”?
Edit:我在 kubernetes slack 频道中询问,似乎我忘记向集群 docker 用户(CI docker 用户,如果你愿意的话)授予对此中心存储库的权限,一旦我这样做了,init 容器上的“imagePullPolicy”是多余的,“模板”>“规格”上的那个就足够了。
谢谢@koki,无论你在哪里。