Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
cannot upload docker container to registry #64
Comments
Joshua-Anderson
added
the
bug
label
Aug 23, 2016
|
From the pod list it looks like the registry-proxy component is missing, which is what proxies requests to the registry. Can you confirm with |
DavidSie
commented
Aug 24, 2016
|
there are registry proxies. I attached one above but there are 3 the same( I using 1 master + 2 minions).
|
|
Okay, so if you do indeed have registry proxies then you're probably hitting the same issue as #62, since your app relies on the |
DavidSie
commented
Aug 24, 2016
•
|
According to docker hub https://hub.docker.com/r/library/ruby/tags/ it's only 313 MB, I would say that's average. |
|
Yes, that address is correct. The request goes through the registry-proxy, which (as the name suggests) proxies the request to the real registry. It's a workaround for the |
|
Coming back to the original problem, I'd inspect both your registry and minio to ensure that there are no problems with either backend. From reports it seems like slightly larger than normal images built via Dockerfile (>100MB) seem to be causing these issues. |
DavidSie
commented
Aug 25, 2016
•
|
this is not a big container size issue (alpine is 2MB: https://hub.docker.com/r/library/alpine/tags/ ) :
Which container should listen on port (This is a different cluster but from the same script) |
The registry-proxy listens on port 5555. Can you please provide the following information so we can try to reproduce this?
I recall that there is internal networking issues when using CoreOS with calico: deis/workflow#442 |
DavidSie
commented
Aug 26, 2016
|
from inside the container
kubectl version:
to provision kubernetes cluster I used this tutorial: https://coreos.com/kubernetes/docs/latest/getting-started.html |
|
The fun situation about not being able to connect to localhost:5555 within the container is to be expected. We actually mount the host's docker socket, so any command we perform it assumes the host's network. Therefore, localhost:5555 on the host belongs to registry-proxy. When you provisioned kubernetes, where did you deploy your cluster? AWS, GKE, Vagrant? |
DavidSie
commented
Aug 26, 2016
|
I did it on Openstack |
think01
commented
Aug 29, 2016
•
|
We had exact same problem, with:
To create our Kubernetes cluster we followed the tutorial here: https://coreos.com/kubernetes/docs/latest/kubernetes-on-vagrant.html After quite a bit of struggling (turning off calico, changing hostPort from 5555 to 80, etc. - nothing changed) we resolved using the plain version of Kubernetes, from the main Deis tutorial here: https://deis.com/docs/workflow/quickstart/provider/vagrant/boot/ with the notable change of Vagrant version, downgrading to 1.8.3, since the 1.8.5 has this bug: mitchellh/vagrant#5186 (it's marked as closed but there's a regression in 1.8.5). So, for us, the problem was in the CoreOs package. We haven't tried the very last commit though. EDIT: we also tried the last commit from the CoreOs repository (commit #bdfe006) with Deis 2.4.1, nothing changed. |
DavidSie
commented
Aug 30, 2016
|
@think01 So you think that |
think01
commented
Aug 30, 2016
|
@DavidSie well, I cannot say the problem is in that component, but we solved by avoiding to use the coreos-kubernetes package and going plain with kubernetes on vagrant (that creates some fedora bosex). Why you talk about |
DavidSie
commented
Aug 30, 2016
|
Because I saw that CoreOS is shipped with this script |
bacongobbler
added
the
upstream issue
label
Sep 19, 2016
|
ping @DavidSie, were you able to identify the root cause of your issue here? |
rbellamy
commented
Sep 21, 2016
|
I am experiencing what I think is a similar issue. My image is 385.9M (so it's >100M as mentioned by @bacongobbler). Regarding "inspecting" the backend - I cannot figure out how to get helpful logging out of the minio pod. I've tried the The first time:
controller logs
Then immediately, I try again:
controller logs
|
|
@rbellamy can you post registry logs in a gist? That will likely give us more information why the registry is failing to communicate with minio. |
rbellamy
commented
Sep 21, 2016
|
@bacongobbler will do. Also, may be related to minio/minio#2743. |
rbellamy
commented
Sep 21, 2016
rbellamy
commented
Sep 21, 2016
|
Here's my setup, using Alpha channel of CoreOS and libvirt:
|
rbellamy
commented
Sep 21, 2016
|
Worked with @harshavardhana from the minio crew to try to troubleshoot this. For whatever reason, during our teleconsole session, I was able to successfully push the image into the NOTE: you can ignore the 404 below - v4 of the
And as you can see, the minio store definitely contains the image, and the proxy can communicate with the minio backend:
|
harshavardhana
commented
Sep 21, 2016
|
@bacongobbler - if you have a setup locally we can work on this and see what is causing the problem. Do not have kubernetes setup locally. i/o timeout seems to be related to network problem between registry and minio server. Need to see if the server itself is not responding properly. Couldn't see it with |
rbellamy
commented
Sep 21, 2016
|
So, from my registry log gist: https://gist.github.com/rbellamy/c0db447ed47c364ae396b5d0c9852a02#file-deis-issue-64-registry-proxy-logs-L1242 |
|
@harshavardhana unfortunately we do not have any clusters reproducing this issue locally nor can we reproduce it ourselves, other than for the calico networking issue. @rbellamy if you can supply information about how you set up your cluster including your KUBERNETES _PROVIDER envvar when using kube-up.sh and what version of workflow we can try to reproduce there. As far as e2e is concerned we aren't seeing this issue in master or in recent releases. http://ci.deis.io |
rbellamy
commented
Sep 21, 2016
|
@bacongobbler I included that information in a comment in this issue: #64 (comment) |
|
Thank you! From what others have voiced earlier it sounds like this sounds related to a CoreOS issue as seen earlier in #64 (comment). I'd recommend trying a different provider first and see if that resolves your issue. |
rbellamy
commented
Sep 22, 2016
•
|
I'm not sure how diagnostic this is, given I'm testing within a single libvirt host - however it should be noted that the host is running 2 x 12 AMD Opteron CPUs on a Supermicro MB with 128G RAM and all SSDs, and each VM is provisioned with 4G and 2CPUs, so I find it hard to believe that the issue at hand is related to overloaded VM host or guest. From what @bacongobbler has said, deis hasn't seen this in their e2e test runner on k8s. I'd be interested to know what the test matrix looks like WRT other providers/hosts. Maybe this is a CoreOS-related problem? Given coreos/bugs#1554 it doesn't seem outside the realm of possibility. Kubernetes on CoreOS (using libvirt-coreos provider and ./kube-up.sh script)
master with 3 nodes
|
Yes, I do believe this is a CoreOS related problem as I mentioned in my previous comment. If you can try provisioning a cluster with a different provider that can help narrow down the issue. |
rbellamy
commented
Sep 22, 2016
|
@bacongobbler I've used corectl and Kube-Solo with success. |
|
@DavidSie after reading the logs just a little more closely, I realized that this seems to be that it looks like your docker daemon is trying to push to a v1 registry endpoint.
Notice the @rbellamy can you please re-open a separate issue? Your issue doesn't look to be the same as it looks like the original error from your report is about minio:
|
harshavardhana
commented
Sep 23, 2016
Is this still the network issue we were talking about previously? @bacongobbler - let me know how can i help here. |
|
Yes. @rbellamy believe he has nailed it down as a symptom of coreos/bugs#1554. Thank you for the offer, though! |
rbellamy
referenced this issue
Sep 23, 2016
Closed
Cannot store docker image in minio - causes broken `deis pull` command #65
DavidSie
commented
Sep 26, 2016
|
@bacongobbler |
|
I'm not sure how this could be fixed, however using 2.5.0 would never hurt. |
dblackdblack
commented
Oct 12, 2016
•
|
I ran into this exact problem when setting up using the CoreOS tool as well. It's too bad that CoreOS aws-cli has this problem b/c the CoreOS tool works really well with cloudformation, which makes teardown a snap after trying out deis. kube-up does not use cloudformation and leaves crap all over your AWS account after you're done with it. |
|
@dblackdblack even after using |
|
So after debugging with both @jdumars and @felixbuenemann, both clusters seem to be showing the same symptom. The problem? Requesting a hostPort on some providers - like Rancher and CoreOS - does not work. @kmala pointed me towards kubernetes/kubernetes#23920 so it looks like we found our smoking gun. |
|
And for anyone who wants to take a crack at trying a patch, they can run through the following instructions to patch workflow-v2.7.0, removing registry-proxy and making the controller and builder connect directly with the registry. This will require the old --insecure-registry flag to be enabled so the docker daemon can talk to the registry, but here's the commands and the patch on a fresh cluster that shows this symptom:
Note that this will purge your cluster entirely of Workflow. There is currently no workaround for this as far as I'm aware, but if users want to bring this issue to light they can try to contribute patches upstream to kubernetes! :) |
This was referenced Oct 19, 2016
zinuzoid
commented
Oct 20, 2016
•
|
In case anyone wants to patch |
|
EDIT: I missed the one line change you made in your patch and the fact it's for workflow-dev. Nice catch! |
zinuzoid
commented
Oct 20, 2016
|
@bacongobbler plus one line in |
bacongobbler
referenced this issue
in samsung-cnct/kraken-lib
Oct 20, 2016
Closed
Implement Deis workflow on K2 #51
added a commit
to aboyett/deis-charts
that referenced
this issue
Oct 27, 2016
|
I'm going to close this issue as there is nothing we can do here to work around this issue in Workflow other than with the patch I provided. This is an upstream issue and patches should be applied upstream. Until then please feel free to run with the patch provided here for production deployments that rely on CNI networking. Thanks! |
bacongobbler
closed this
Oct 31, 2016
jwalters-gpsw
commented
Nov 2, 2016
|
When applying the patch got this corrupt patch at line 6 message: |
|
@jwalters-gpsw try again. I just fixed the patch.
|
|
v2.8.0 patch:
|
It's easier to re-deploy the cluster if you're just getting set up. Otherwise you'll have to manually SSH into each node, modify the daemon startup flags and reboot docker on every node. |
jwalters-gpsw
commented
Nov 3, 2016
|
Thanks. I will give that a try. Also thinking about doing a Deis upgrade to the same version per the upgrade instructions but setting the registry to an off-cluster registry. |
jwalters-gpsw
commented
Nov 3, 2016
|
Manually updated the worker nodes docker config and applied your changes and its working fine now. |
This was referenced Nov 4, 2016
ineu
commented
Jan 4, 2017
|
Sorry for raising this old thread, but could you please explain how to apply this patch to the 2.9 which is deployed via helm and not helm classic? |
|
You can fetch the chart locally via |
ineu
commented
Jan 5, 2017
|
Thank you |
This was referenced Jan 10, 2017
anubhavmishra
commented
Apr 30, 2017
|
Patched with @bacongobbler's suggested fixes #64 (comment) latest helm workflow charts: https://github.com/anubhavmishra/workflow. |
Cryptophobia
referenced this issue
in deis/dockerbuilder
May 4, 2017
Closed
Docker python library broken? #122
IlyaSemenov
commented
Jun 26, 2017
|
For v2.15.0, the recipe will be:
Don't forget to enable insecure registry
|
felixbuenemann
commented
Jun 26, 2017
•
|
Removing the registry proxy should no longer be needed with current versions of the deis helm charts, you can set the following in your deis-workflow global:
host_port: 5555
use_cni: true
registry_proxy_bind_addr: "127.0.0.1:5555" |
IlyaSemenov
commented
Jun 27, 2017
•
|
It's not working on Kubernetes 1.5.4 provisioned with Rancher 1.6.2 (latest). I think this is the related issue rancher/rancher#5857. |
IulianParaian
commented
Jul 18, 2017
|
I'm new to Deis and I'm encountering all kind of problems in my journey to deploy Deis in AWS.
So clearly the problem is because Can anyone help me with this issue? |
felixbuenemann
commented
Jul 19, 2017
|
@IulianParaian I would try the deis slack for troubleshooting. Might be your registry proxies are crashing because the internal registry is unreachable. |
IulianParaian
commented
Jul 19, 2017
|
@felixbuenemann I did tried the said slack first but didn't get any responses. And I also couldn't find a good documentation or a simple example on how to deploy an app from Docker image/ Docker file. I'm not referring to the official Deis documentation because there are just 3 lines of text with one command line that should work, but obviously it is not. PS: I raised another issue on Workflow repo regarding an installation using off cluster storage, but no response there either. And for that I also followed the official steps. |
I understand your frustration, though if the documentation is lacking, there are example applications provided for nearly any configuration you're looking for in the github org, and we do link to those example applications in the documentation. For example: https://github.com/deis/example-dockerfile-http Have you taken a look at the troubleshooting documentation? That should help give you a general guideline on how you can self-troubleshoot why your cluster is not working the way it should. If all else fails you can troubleshoot directly using kubectl following kubernetes' documentation. |
IulianParaian
commented
Jul 19, 2017
|
Hi @bacongobbler, thank you for the answer. As I am writing this I went to check the deis pods again and surprisingly, I have 2 |
DavidSie commentedAug 23, 2016
When I build an up with buildpack it works, but when I want to build container I cannot upload it to the registry
I know that there are environmental variables to point this address:
but I don't understand why, since none of the pods, and none of the services is listening on 5555
services
pods