我有一个专用的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
答案 0 :(得分:1)
您的问题似乎是从private-docker-registry获取图像的问题。
您可以执行以下步骤来使用ssl证书来验证对从docker注册表中获取图像的请求的要求:
您需要将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
使用imagePullSecret属性更新pod yaml,并提供第一步中创建的“秘密名称”作为该属性的值。 (请参阅:https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/)