kubernetes“远程错误:tls:握手失败”缺少SSL证书

时间:2020-06-25 13:24:17

标签: ssl kubernetes ssl-certificate k3s

我有一个专用的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

1 个答案:

答案 0 :(得分:1)

您的问题似乎是从private-docker-registry获取图像的问题。

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

  1. 您需要将ssl证书存储在kubernetes机密中。 (请参阅:https://www.padok.fr/en/blog/kubernetes-secrets) 您可以使用以下命令从ssl文件创建密钥:

    kubectl create secret generic ssl-key-cert --from-file=ssl.key --from-file ssl.cert

  2. 使用imagePullSecret属性更新pod yaml,并提供第一步中创建的“秘密名称”作为该属性的值。 (请参阅:https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)