-
Notifications
You must be signed in to change notification settings - Fork 40k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release tarballs are too big #28435
Comments
If the point of the release is for end-users to turn up a kubernetes cluster, do they even need the binaries? Why not just give them the image? I also think it makes sense to split the release up by server architectures. |
Some previous discussion here: #9253 Apparently some of the duplication is/was for CoreOS? Although kube-up uses this tarball, there's no need to: the expanded files are also available for direct download (kubectl, kubelet), and gcr.io has all the images. |
I'm very interested in this and have done some (small) improvements already.
Do you have a proposal for which commands
I've been thinking about if we should deprecate
The federation binaries are already inside hyperkube. The individual binaries was likely added in order to comply with current standards (separate binary + bundle in hyperkube)
This has also been brought up before, I think. I'd prefer moving it to a test target. @kubernetes/sig-cluster-lifecycle folks might also be interested in this. |
So I just came across this (while downloading the 1.3.0 binaries) and I agree that this is completely ridiculous. We need an owner for this issue for 1.4. |
@david-mcmahon Can we stick you with this for 1.4? |
I think this falls under @david-mcmahon and the release infra area, so proactively assigning -- David, let us know if you disagree. I think this is also interesting to install, because downloading a 1.4GB tarball that extracts to 3+GB is a relatively sad install process. There may be short-term expedient things we could do, e.g. building multiple tar balls with only linux x86-64 or srcs while still supporting the one-big-ball, in addition to hyperkube-style minified builds. |
We explode those tars in GCS. We should document how to pull specific pieces of the release. https://gist.github.com/mikedanese/d3eed580c7f0a0e5c13534220f88eb5a |
This looks like a huge meta-issue with several solutions affecting many areas of the product. If we all agree on @jbeda 's suggested solutions, each should be broken out into their own bug (grouped where appropriate) and assigned. Many of these solutions potentially have product/user/usability ramifications and need the attention of the area owner(s). I'll make a first pass at the original list. Others feel free to add/update. |
I am unlikely to have the bandwidth to drive this further this quarter or before 1.4. Area leads should be assigning the subtasks @jbeda identified and I filed issues for to get this done before 1.4. @thockin @mikedanese @davidopp @luxas @quinton-hoole @alex-mohr. Please cc anyone I've missed. |
…tes-full-tarball Automatic merge from submit-queue Stop including arch-specific binaries in kubernetes.tar.gz **What this PR does / why we need it**: This PR stops including the kubernetes client and server tarballs in `kubernetes.tar.gz`. These should instead be downloaded separately for only the required architectures. The `cluster/get-kube.sh` (https://get.k8s.io) and `cluster/get-kube-binaries.sh` handle downloading and extracting the necessary binaries for you automatically. Jenkins also uses this workflow now. Anyone still expecting binaries in kubernetes.tar.gz will be broken, but I've at least fixed all occurrences in-tree. **Which issue this PR fixes**: fixes #28629, chips away at #28435 **Release note**: ```release-note Arch-specific server and client binaries are no longer included in `kubernetes.tar.gz`. You must manually download the necessary architecture-specific tarballs or use `kubernetes/cluster/get-kube-binaries.sh` to download them for you. ``` cc @luxas @zmerlynn @justinsb @mikedanese @thockin @spxtr
@ixdy work on this will move to 1.6? (This needs to be triaged as a release-blocker or not for 1.5) |
1 similar comment
@ixdy work on this will move to 1.6? (This needs to be triaged as a release-blocker or not for 1.5) |
If I understand correctly, @ixdy has already made some improvements by splitting the monotarball out to one tarball per arch. But I think there's work left to do, so moving to v1.6 |
@ixdy can this be closed? |
pre-existing for 1.6, not a release blocker |
[MILESTONENOTIFIER] Milestone Labels Incomplete Action required: This issue requires label changes. If the required changes are not made within 6 days, the issue will be moved out of the v1.8 milestone. kind: Must specify at most one of ['kind/bug', 'kind/feature', 'kind/cleanup'].
Additional instructions available here
|
Issues go stale after 90d of inactivity. Prevent issues from auto-closing with an If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or |
Is anyone from @kubernetes/sig-release-feature-requests working on this feature request? |
Since 1.6 or so, we've had separate per-arch tarballs, and the main one is only a few MB with a script to download only the arch you're running on. I haven't heard any complaints about tarball size since then. |
Should we close this then? |
Close enough. I'm closing it. Victory is ours! |
The Kubernetes 1.3 release tarball is 1.4G. That is insane. While we know that much of this is due to the fact that we include all architectures, it make kubernetes feel heavier than it is.
Much of the space is the fact that 4 server platforms are now created and packaged with everything else. Each target is a ~325M tarball. These tarballs include both individual binaries along with Docker images that include those binaries. They include kubectl (which is available naked in the release).
We also have 9 copies of kubectl for various targets totaling 450MB.
Things we can do to slim this down:
amd64
hyperkube is 132M uncompressed and 26M compressed. This means we could go from a 350M compressed tar for the amd64 target down to 26M. (Finish hyperkube transition #16508, owner?)hyperkube admin create-container-image
could do this. We could also supporthyperkube admin create-container-image --aci
andhyperkube admin create-container-image --docker --just-dockerfile
. (Ability to build the Docker images on the fly #28630, owner?)gcloud
already ships it separately. The user cases here differ dramatically. (Break out kubectl as a separate download from the server components #28631, owner?)kubemark
here. No end users will actually use that. This is 100M uncompressed. (Do we need to ship the kubemark binary? #28635, owner?)Also related: #27444 (Builds are taking too long)
The text was updated successfully, but these errors were encountered: