问题是由于Kubernetes集群中缺少Let's Encrypt证书所致,因此需要在容器内部添加证书。请添加以下Kubernetes Deployment YAML文件中的env变量:
env:
- name: REGISTRY_HTTP_TLS_CERTIFICATE
value: /etc/docker/certs.d//ca.crt
此处需要将替换为私有仓库的FQDN。在该宿主机上存在一个具有访问证书存储的'宿主机器地址”文件夹。将您的CRT证书文件复制到该宿主机器地址文件夹中的正确位置。例如:
/opt/mydata/registry/certs.d/myprivateregistry.com:5000/ca.crt
然后在Kubernetes集群中的Deployment YAML文件中添加上面的env变量。
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 1
template:
metadata:
name: my-app
spec:
containers:
- name: my-app-container
image: myprivateregistry.com:5000/my-app
env:
- name: REGISTRY_HTTP_TLS_CERTIFICATE
value: /etc/docker/certs.d/myprivateregistry.com:5000/ca.crt
这样就能从私有仓库拉取Docker镜像了。