“库伯内特斯”;远程错误:tls:握手失败“;缺少SSL证书

“库伯内特斯”;远程错误:tls:握手失败“;缺少SSL证书,ssl,kubernetes,ssl-certificate,k3s,Ssl,Kubernetes,Ssl Certificate,K3s,我有一个私有docker映像存储库,它需要SSL证书才能访问。 现在,我尝试创建多个kubernetes机密(包含docker主机名、用户名、密码和证书),以便从中获取带有kubernetes的图像,但仍然失败,因为缺少证书“无法提取图像…远程错误:tls:握手失败”。那么,是否有一种特定的方法需要应用SSL证书,以便能够从需要SSL证书的私有存储库中提取图像 我试过了 kubectl create secret docker-registry repo-auth --docker-server

我有一个私有docker映像存储库,它需要SSL证书才能访问。 现在,我尝试创建多个kubernetes机密(包含docker主机名、用户名、密码和证书),以便从中获取带有kubernetes的图像,但仍然失败,因为缺少证书“无法提取图像…远程错误:tls:握手失败”。那么,是否有一种特定的方法需要应用SSL证书,以便能够从需要SSL证书的私有存储库中提取图像

我试过了

kubectl create secret docker-registry repo-auth --docker-server=xxxxx --docker-username=xxxxxx --docker-password=xxxx

kubectl create secret tls repo-tls --cert=/xxxx/client.cert --key=/xxxx/client.key"

kubectl create secret generic regcred2 --from-file=/xxxx/client.key --from-file=/xxxx/client.cert"

kubectl create secret generic regcred --from-file=.dockerconfigjson=/root/.docker/config.json --type=kubernetes.io/dockerconfigjson --from-file=/xxxx/client.key --from-file=/xxxx/client.cert"

imagePullSecrets:
    - name: repo-tls
    - name: repo-auth
    - name: regcred
    - name: regcred2
但错误依然存在


PS我正在使用k3s

您的问题似乎是从私有docker注册表获取图像的问题

您可以执行以下步骤,使用ssl证书验证从docker注册表获取图像的请求:

  • 您需要将ssl证书存储在kubernetes机密中。(参考:) 您可以使用以下命令从ssl文件创建密钥:

    kubectl创建机密通用ssl密钥证书--从文件=ssl.key--从文件ssl.cert

  • 使用imagePullSecret属性更新pod yaml,并提供在第一步中创建的“secret name”作为该属性的值。(参考:https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)


  • 我是否可以将这两个秘密“kubectl创建机密通用ssl密钥证书--从文件=ssl.key--从文件ssl.cert”与“kubectl创建机密docker注册表privaterepo--docker服务器=xxxx--docker用户名=xxx--docker密码=xxx”结合起来。或者我只是在imagePullSecrets下添加多个机密。是的。您可以使用
    kubectl create secret docker registry privaterepo--docker server=xxxx--docker username=xxx--docker password=xxx--from file=ssl key path--from file=ssl cert path
    。您是否知道是否有一些官方Kubernetes文档用于处理需要证书的存储库。您可能想查看以下资源: