upgrade to 1.14 seems to have broken my access to private registries
See original GitHub issueI’m under some restrictions about uploading the tarball from microk8s inspect, but
user@orion-a:~$ microk8s.inspect
Inspecting services
Service snap.microk8s.daemon-containerd is running
Service snap.microk8s.daemon-apiserver is running
Service snap.microk8s.daemon-proxy is running
Service snap.microk8s.daemon-kubelet is running
Service snap.microk8s.daemon-scheduler is running
Service snap.microk8s.daemon-controller-manager is running
Service snap.microk8s.daemon-etcd is running
We’ve been using imagePullSecrets successfully on previous version (1.13.3), but the automatic upgrade to 1.14 both surprised me and seems to have broken the ability to pull from our private registry. (registry is using https://github.com/cesanta/docker_auth and registry:2)
this caused all of our microk8s installs to fail around 17 hours ago when the snap was released.
I checked this issue: https://github.com/containerd/cri/issues/848 but we are using the modern syntax (dockerconfigjson) and haven’t been having an issue prior to yesterday
Issue Analytics
- State:
- Created 4 years ago
- Reactions:1
- Comments:22 (4 by maintainers)
Top Results From Across the Web
upgrade to 1.14 seems to have broken my access to private ...
Any help would be greatly appreciated. The registry is a pod running within my Kubernetes cluster.
Read more >Private Registries - RKE - Rancher
If you are on a system that does not have access to DockerHub, you will need to create a private registry that is...
Read more >Container registry push is broken after upgrade to 15.4 - GitLab
Hi GitLab, Yesterday I've upgraded my personal GL instance from 15.3.2 to 15.4. Everything went fine. In the morning, I was greeted by...
Read more >Anthos clusters on VMware release notes - Google Cloud
Fixed the issue where the admin control plane machine may fail to start up when the private registry certificate is too large.
Read more >Troubleshoot network issues with registry - Azure Container ...
Symptoms, causes, and resolution of common problems when accessing an Azure container registry in a virtual network or behind a firewall.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
I got this to work!
I checked
cri
’s source code and saw this:If we trace that further, the hostname comes from the ‘pull image request’. I wasn’t entirely sure what that is but I figured it could very well be the hostname of the image repository, so then I tried editing
/var/snap/microk8s/current/args/containerd-template.toml
with:Restarted the service, tried deploying
bbox.yaml
again and it worked!Bottom line is it seems we can’t just put any arbitrary text after
plugins.cri.registry.mirrors.
, it has to match the host of the registry.EDIT: after further investigation, I can confirm that it works like stated above. ParseNormalizedName will convert the image name into a fully qualified one that Docker can use unambiguously. When there’s no host name,
docker.io
is preppended to the name, hence the default[plugins.cri.registry.mirrors."docker.io"]
. See test. This makes me wonder about https://github.com/containerd/cri/blob/master/docs/registry.md, which seems misleading as there’s no description abouttest.secure-registry.io
andtest.insecure-registry.io
and it leads to think that you can put anything there.I too can’t access my private registry and getting
https://192.168.3.25:5000/v2/my-busybox/manifests/latest: http: server gave HTTP response to HTTPS client
.My setup is:
And I’ve got a private registry at port 5000. Note that this registry is not in Kubernetes.
I’ve edited
/etc/docker/daemon.json
to include"insecure-registries" : ["192.168.3.25:5000"]
, so I’m able to:My
/var/snap/microk8s/current/args/containerd-template.toml
also includesBut then when I try to
kubectl apply -f bbox.yaml
I get the dreaded
Failed to pull image "192.168.3.25:5000/my-busybox:latest": rpc error: code = Unknown desc = failed to resolve image "192.168.3.25:5000/my-busybox:latest": no available registry endpoint: failed to do request: Head https://192.168.3.25:5000/v2/my-busybox/manifests/latest: http: server gave HTTP response to HTTPS client
After investigating for a while and going through https://github.com/containerd/containerd/issues/2758, I tried doing
But then if I try with
--plain-http
it works!So it seems
containerd
withinmicrok8s
is not checking the insecure repository mirror entry. Is this a bug or is there anything else I could do?