0

我有一个私有 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

4

1 回答 1

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/)

于 2020-06-25T13:55:39.920 回答