我使用JFrog作为docker注册表。如果我尝试手动拉动图像,则会拉动图像。但是当我通过包含在helm chart和helm install命令中尝试相同时它会抛出我的错误:“错误:ImagePullBackOff”“pull image registry_name / jfrogk8s:1.0”“无法拉图像registry_name / jfrogk8s:1.0:rpc错误: code = Unknown desc =来自守护进程的错误响应:获取https://dip-docker-dip.bintray.io/v2/jfrogk8s/manifests/1.0:未授权:未经授权“
我在“/etc/docker/daemon.json”中包含了docker注册表
它清楚地说 - unauthorized: Unauthorized
即使您确实将docker registry in "/etc/docker/daemon.json"
放在kubernetes环境中,也不会在拉取内部图像时调用docker注册表。因此,你需要创建一个Docker Registry Secret
,然后在helm安装中使用它来告诉kubernetes使用这个秘密来拉取内部图像:
kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
哪里:
<your-registry-server>
是您的私有Docker Registry FQDN。 (用于DockerHub的https://index.docker.io/v1/)<your-name>
:是你的Docker用户名。<your-pword>
:是你的Docker密码。<your-email>
:是您的Docker电子邮件。
验证是否创建了docker注册表密码regcred
kubectl get secret regcred --output=yaml
然后在你的掌舵图表中value.yaml
添加以下行
imagePullSecret: regcred
如果你需要这样做,Kubernetes的方式你的deploy.yaml
将如下所示:
apiVersion: v1
kind: Pod
metadata:
name: private-reg
spec:
containers:
- name: private-reg-container
image: <your-private-image>
imagePullSecrets:
- name: regcred