Hey everyone! I'm looking for some assistance with an issue I'm facing. I have a private Docker image registry set up in my Kubernetes cluster, and it's exposed through a service and ingress with Nginx listening on port 30080. I can successfully list the registry with a curl command using the API _catalog. However, when I try to push my first Docker image, it gets stuck trying to upload and eventually times out. I see logs in Nginx indicating a connection problem. I'm really hoping someone can give me some guidance on what might be causing this. Thanks in advance!
5 Answers
I finally figured it out! Thanks to everyone for the pointers. Here’s what worked for me:
1. I added TLS to the ingress since I saw recommendations to use HTTP only for local traffic.
2. This led to an SSL error about packet length.
3. I updated my ingress YAML to change the backend protocol from 'HTTPS' to 'HTTP', as the registry was actually handling HTTP.
Step 3 was the key! Cheers and happy Kubernetes-ing!
Weird that the smaller layers are pushing but the larger ones aren't. Since both the source image and the registry are on the same host, the network shouldn’t really be an issue.
It sounds like there could be an upload limit set in your Nginx configuration. You might want to check that to see if you're hitting a cap, especially since smaller layers seem to work fine but the larger ones don't.
Have you checked the logs for the registry itself? Sometimes they can provide more insight into what’s going wrong when the push fails.
The registry logs don’t seem to show any errors—they just indicate that the response was completed successfully, but with no content written.
Just curious, are you using Nginx before your ingress? If so, what’s your upstream configuration like? Also, do you have sendfile enabled?
Yes, I do have Nginx set up before the ingress. I'm pretty new to this, so I’ll look into the upstream and sendfile configurations. I'll also share my Nginx config here for any feedback.
Thanks for the suggestion! I tried increasing the limit to 200M, but I'm still having the same issue.