Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在kubernetes中配置docker hub pro用户?_Docker_Kubernetes_Dockerhub - Fatal编程技术网

有没有办法在kubernetes中配置docker hub pro用户?

有没有办法在kubernetes中配置docker hub pro用户?,docker,kubernetes,dockerhub,Docker,Kubernetes,Dockerhub,我们刚买了一个docker hub pro用户,这样我们就不必担心拉速限制 现在,我在尝试设置docker hub pro用户时遇到了一个问题。有没有办法在全球范围内设置hub.docker.com的凭据 在kubernetes文档中,我发现了以下文章: 在每个节点上,我都使用凭据执行docker登录,将config.json复制到/var/lib/kubelet并重新启动kubelet。但由于这些利率限制,我仍然受到了吸引 我已将config.json复制到以下位置: /var/lib/ku

我们刚买了一个docker hub pro用户,这样我们就不必担心拉速限制

现在,我在尝试设置docker hub pro用户时遇到了一个问题。有没有办法在全球范围内设置hub.docker.com的凭据

在kubernetes文档中,我发现了以下文章:

在每个节点上,我都使用凭据执行docker登录,将config.json复制到/var/lib/kubelet并重新启动kubelet。但由于这些利率限制,我仍然受到了吸引

我已将config.json复制到以下位置:

  • /var/lib/kubelet/config.json
  • /var/lib/kubelet/.dockercfg
  • /root/.docker/config.json
  • /.docker/config.json
可以选择使用机密进行身份验证。问题是,我们需要编辑数百个状态集、部署和执事集。因此,全局设置docker用户将是一件非常棒的事情

下面是config.json:

{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "[redacted]"
                }
        },
        "HttpHeaders": {
                "User-Agent": "Docker-Client/19.03.13 (linux)"
        }
}
kubectl create secret generic regcred \
    --from-file=.dockerconfigjson=<path/to/.docker/config.json> \
    --type=kubernetes.io/dockerconfigjson
为了检查它是否真的与用户一起登录,我已经在我的帐户中创建了一个访问令牌。在那里,我可以看到最后一次登录所说的令牌。上次登录是在我执行docker login命令时。因此,我尝试提取的图像没有使用这些凭据

有什么想法吗


谢谢大家!

Kubernetes使用

使用Docker config.json:

{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "[redacted]"
                }
        },
        "HttpHeaders": {
                "User-Agent": "Docker-Client/19.03.13 (linux)"
        }
}
kubectl create secret generic regcred \
    --from-file=.dockerconfigjson=<path/to/.docker/config.json> \
    --type=kubernetes.io/dockerconfigjson
或在用户级别使用该机密()

  • kubectl获取服务帐户默认值-o yaml>/sa.yaml

  • 打开sa.yaml文件,删除带有密钥resourceVersion的行,添加带有imagePullSecrets:的行,然后保存

    kind: ServiceAccount
    metadata:
      creationTimestamp: "2020-11-22T21:41:53Z"
      name: default
      namespace: default
      selfLink: /api/v1/namespaces/default/serviceaccounts/default
      uid: afad07eb-f58e-4012-9ccf-0ac9762981d5
    secrets:
    - name: default-token-gkmp7
    imagePullSecrets:
    - name: regcred
    
    
  • 最后,用新更新的sa.yaml文件替换serviceaccount
    kubectl替换服务帐户默认值-f./sa.yaml

  • 我们在Kubernetes集群中使用代理缓存,Docker Hub凭据可以在配置中设置。Kubernetes节点上的Docker守护进程通过在
    /etc/Docker/daemon.json
    中设置配置为使用代理


    这样,您就不需要修改任何Kubernetes清单来包含拉秘密。我们的完整设置如下所述。

    我遇到了与OP相同的问题。事实证明,将kubelet的docker凭据文件放入kubernetes 1.18版或更高版本中是可行的。我已经在这里进行了测试,可以确认kubelet 1.18正确地获取了放置在/var/lib/kubelet中的config.json并验证了docker注册表。

    感谢您的回答!问题是,我们需要改变所有的部署。正如我在问题中提到的,这将是一个巨大的工作量。是否有一种全局设置pullsecret的方法?第一个链接包含一个配置服务帐户的参考: