我有一个私人仓库,通过https协议访问。但是Kubernetes + Docker总是尝试使用http协议http://myserver.com:8080而不是https://myserver.com:8080。
如果我在图像名称中指定协议,它会抱怨:
如何强制使用https协议?
这里是声明Pod的yaml文件片段:
containers:
- name: apl
image: myserver.com:8080/myimage
我的环境详情如下:
- CentOS 7.3
- Docker 18.06
- Kubernetes (Minikube) 1.13.1
Kubernetes日志中的错误信息:
Normal Pulling 30s (x4 over 2m2s) kubelet, minikube pulling image "docker.mydomain.com:30500/vision-ssh"
Warning Failed 30s (x4 over 2m2s) kubelet, minikube Failed to pull image "docker.mydomain.com:30500/vision-ssh": rpc error: code = Unknown desc = Error response from daemon: Get http://docker.mydomain.com:30500/v2/: net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x15\x03\x01\x00\x02\x02"
Warning Failed 30s (x4 over 2m2s) kubelet, minikube Error: ErrImagePull
Warning Failed 19s (x6 over 2m2s) kubelet, minikube Error: ImagePullBackOff
Normal BackOff 4s (x7 over 2m2s) kubelet, minikube Back-off pulling image "docker.fccma.com:30500/vision-ssh"
如果我在图像名称中指定协议,它会抱怨:
couldn't parse image reference "https://docker.mydomain.com:30500/vision-ssh": invalid reference format
为了创建镜像仓库,我按照 指南 进行操作。镜像仓库已经被保护(使用 HTTPS 协议,并受到用户密码的保护)。