从Docker私人仓库撤出的K8s问题

我有一个要部署到Kubernetes的Jhipster应用程序。我使用jhipster kubernetes命令创建了所有k8s对象,并提供了一个Docker Hub存储库以将其推送。 Docker Hub存储库是私有的。

部署对象如下:

apiVersion: apps/v1
kind: Deployment
metadata:
    name: demodevices
    namespace: demo
spec:
    replicas: 1
    selector:
        matchLabels:
            app: demodevices
            version: 'v1'
    template:
        metadata:
            labels:
                app: demodevices
                version: 'v1'
        spec:
            initContainers:
                - name: init-ds
                  image: busybox:latest
                  command:
                      - '/bin/sh'
                      - '-c'
                      - |
                          while true
                          do
                            rt=$(nc -z -w 1 demodevices-postgresql 5432)
                            if [ $? -eq 0 ]; then
                              echo "DB is UP"
                              break
                            fi
                            echo "DB is not yet reachable;sleep for 10s before retry"
                            sleep 10
                          done
            containers:
                - name: demodevices-app
                  image: myRepo/demo:demodevices-1.0.0
                  env: ...
                  resources: ...
                  ports: ...
                  readinessProbe: ...
                  livenessProbe: ...
            imagePullSecrets:
            - name: regcred

因为我使用了私有Docker Hub仓库,所以我添加了imagePullSecret。密钥已创建并部署到k8s。

应用文件时,在窗格中,我看到以下消息:

 Warning  Failed     <invalid> (x4 over <invalid>)  kubelet,k8node1   Failed to pull image "busybox:latest": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/library/busybox/manifests/latest: unauthorized: incorrect username or password
 Warning  Failed     <invalid> (x4 over <invalid>)  kubelet,k8node1   Error: ErrImagePull
 Normal   BackOff    <invalid> (x6 over <invalid>)  kubelet,k8node1   Back-off pulling image "busybox:latest"
 Warning  Failed     <invalid> (x6 over <invalid>)  kubelet,k8node1   Error: ImagePullBackOff

据我了解,它会尝试使用私有存储库的凭据来提取busybox:latest图像。预期的结果是无错误地拉出busybox:latest并从我的私人仓库中拉出我的自定义映像。如何解决以上问题?

linshumian999 回答:从Docker私人仓库撤出的K8s问题

您是否已将Private Repo添加到Docker In-Secure Registry中。您是否也尝试过使用docker login登录到您的私人仓库中?这样做时,它会创建一个登录凭据条目。
尝试使用docker登录和docker pull / run进行手动拉取。如果可行,那么它也必须适用于K8。

,

此错误与您正在使用imagePullSecret的事实无关。

Review创建秘密的过程,下面是一个示例:

kubectl create secret docker-registry anyname \
--docker-server=docker.io \
--docker-username=<username> \
--docker-password=<password> \
--docker-email=<email>

我转载了您的案件,当我使用错误的信息创建机密时也遇到了同样的错误。

本文链接:https://www.f2er.com/3037630.html

大家都在问