JFrog docker registry 没有在 Kubernetes 中拉取镜像
JFrog docker registry is not pulling images in Kubernetes
我正在使用 JFrog 作为 docker 注册表。
如果我尝试手动拉取一个图像,它会工作,但是当我尝试通过将其包含在 helm chart 和 helm install 命令中进行相同操作时,它会抛出错误:
Error: ImagePullBackOff
pulling image registry_name/jfrogk8s:1.0
Failed to pull image registry_name/jfrogk8s:1.0: rpc error: code = Unknown desc = Error response from daemon: Get https://dip-docker-dip.bintray.io/v2/jfrogk8s/manifests/1.0: unauthorized: Unauthorized"
我已将 docker 注册表包含在“/etc/docker/daemon.json”
中
它清楚地写着 - 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>
where:
<your-registry-server>
is your Private Docker Registry FQDN.
(https://index.docker.io/v1/ for DockerHub)
<your-name>
: is your Docker username.
<your-pword>
: is your Docker password.
<your-email>
: is your Docker email.
要验证 docker 注册表密码 regcred
是否已创建,请执行
kubectl get secret regcred --output=yaml
然后在您的 helm 图表中 value.yaml
添加以下行
imagePullSecret: regcred
如果您需要按照 Kuberentes 的方式进行操作,您的 deploy.yaml
将如下所示:
apiVersion: v1
kind: Pod
metadata:
name: private-reg
spec:
containers:
- name: private-reg-container
image: <your-private-image>
imagePullSecrets:
- name: regcred
我正在使用 JFrog 作为 docker 注册表。
如果我尝试手动拉取一个图像,它会工作,但是当我尝试通过将其包含在 helm chart 和 helm install 命令中进行相同操作时,它会抛出错误:
Error: ImagePullBackOff
pulling image registry_name/jfrogk8s:1.0
Failed to pull image registry_name/jfrogk8s:1.0: rpc error: code = Unknown desc = Error response from daemon: Get https://dip-docker-dip.bintray.io/v2/jfrogk8s/manifests/1.0: unauthorized: Unauthorized"
我已将 docker 注册表包含在“/etc/docker/daemon.json”
中它清楚地写着 - 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>
where:
<your-registry-server>
is your Private Docker Registry FQDN. (https://index.docker.io/v1/ for DockerHub)
<your-name>
: is your Docker username.<your-pword>
: is your Docker password.<your-email>
: is your Docker email.
要验证 docker 注册表密码 regcred
是否已创建,请执行
kubectl get secret regcred --output=yaml
然后在您的 helm 图表中 value.yaml
添加以下行
imagePullSecret: regcred
如果您需要按照 Kuberentes 的方式进行操作,您的 deploy.yaml
将如下所示:
apiVersion: v1
kind: Pod
metadata:
name: private-reg
spec:
containers:
- name: private-reg-container
image: <your-private-image>
imagePullSecrets:
- name: regcred