Comments (15)
Note that this relates to #19 as it would (a) make it less painful to copy stuff in and out of a boot2docker VM during build and (b) would make the resultant container images smaller as they'd all share a base with the single binary.
from kubernetes.
SGTM.
Brendan
On Sat, Jun 14, 2014, 9:00 AM, Joe Beda [email protected] wrote:
Note that this relates to #4
#4 as it would
(a) make it less painful to copy stuff in and out of a boot2docker VM
during build and (b) would make the resultant container images smaller as
they'd all share a base with the single binary.—
Reply to this email directly or view it on GitHub
#108 (comment)
.
from kubernetes.
The localkube thing I made is most of the way there already.
On Jun 14, 2014 9:25 AM, "brendandburns" [email protected] wrote:
SGTM.
Brendan
On Sat, Jun 14, 2014, 9:00 AM, Joe Beda [email protected] wrote:
Note that this relates to #4
#4 as it
would
(a) make it less painful to copy stuff in and out of a boot2docker VM
during build and (b) would make the resultant container images smaller
as
they'd all share a base with the single binary.—
Reply to this email directly or view it on GitHub
<
https://github.com/GoogleCloudPlatform/kubernetes/issues/108#issuecomment-46091743>.
—
Reply to this email directly or view it on GitHub
#108 (comment)
.
from kubernetes.
Consider using subcommand instead of flags for defining which component to
launch, ex:
kube agent -some-agent-flag
On Jun 14, 2014 9:39 AM, "Daniel Smith" [email protected] wrote:
The localkube thing I made is most of the way there already.
On Jun 14, 2014 9:25 AM, "brendandburns" [email protected]
wrote:SGTM.
Brendan
On Sat, Jun 14, 2014, 9:00 AM, Joe Beda [email protected]
wrote:Note that this relates to #4
#4 as it
would
(a) make it less painful to copy stuff in and out of a boot2docker VM
during build and (b) would make the resultant container images smaller
as
they'd all share a base with the single binary.—
Reply to this email directly or view it on GitHub
<https://github.com/GoogleCloudPlatform/kubernetes/issues/108#issuecomment-46091743>
.
—
Reply to this email directly or view it on GitHub
<
https://github.com/GoogleCloudPlatform/kubernetes/issues/108#issuecomment-46092426>.
—
Reply to this email directly or view it on GitHub
#108 (comment)
.
from kubernetes.
Maybe also support busybox-style command selection via argv[0]? That way you can symlink/hardlink the main binary under different names.
http://www.busybox.net/FAQ.html#source
from kubernetes.
@delroth I love the busybox model but I'm not sure that we want to rely on it completely. We will probably want to have the client tools run on Windows at some point and I'm not sure how that'd work.
In any case, everyone seems on board so I'll mark this as a "feature request" instead of a question.
from kubernetes.
I like the subcommand idea as seen in git, go command, gcloud and so on....
from kubernetes.
I'm going a bit against the crowd here, but I prefer each service as a separate binary mainly to help keep each one focused. If the decision was to move to a single binary then subcommands would be ideal:
kube apiserver
kube controller-manager
kube kubelet
kube proxy
But I think the UX of subcommands for completely different services to be pretty bad. It works well for users with experience, but will most likely confuse new users. Finally, again non-technical, but I think unnecessary coupling between components starts to happen once you have a "single" binary.
from kubernetes.
I'll agree with this last comment - I don't find 50 MB to be particularly damning - but maybe I have been in C++ land for too long. At the same time, I also don't find the idea of jamming them all together into one binary to make a lot of sense. It's sort of early to be apologizing for the size of Go binaries isn't it?
from kubernetes.
Or we could just do symlinks like:
kube-apiserver
Where the executable checks its executable name, sees it's != kube
, then attempts to use the subcommand matching apiserver
. That resolves the subcommand ordeal and enforces consistency at the same time.
I'm a huge +1 for a single binary, but it should be optional for folks who operate on different build cycles. We probably want to ensure that the executable entry points are cleanly separated from pkg/
code as well, so that people can create new cmd/
entry points that composite function.
from kubernetes.
IMO, having all of them grouped in a single command means that they will be used always together.
It is also true that when using a set of different tools, it is easier to have all related commands under one common prefix, so maybe @smarterclayton's solution is the best in this case
from kubernetes.
@jbeda @brendandburns Is this done?
from kubernetes.
@bgrant0607 This one seems to be done now that we have hyperkube.
from kubernetes.
Agree.
from kubernetes.
As we start building a bunch of binaries the size of our output goes up. Because of go static linking, we end up with 8-10MB for each binary. Currently we 7 of these for a total of 58M (
find output/go -type f -perm +111 | xargs du -ch
).If we created a single binary with a switch for which functionality users want we would have a single binary that would adapt as necessary and probably be ~10M.
I'd image we'd call this thing
kube
and by default it'd be the client binary. If you want to run a server component you would do something likekube --daemon=api-server
.Thoughts?
Create a file /opt/KUCC00302/kucc00302.txt that lists all pods that implement Service foo in
Namespace production.
The format of the file should be one pod name per line.
kubectl get svc -o wide -n production
得到label
kubectl get pod -l label=value |awk '{print $1}' |grep -v "NAME" >> /opt/KUCC00302/kucc00302.txt
kubectl get po -l label
from kubernetes.
Related Issues (20)
- Kubelet memory leak when a plugin is registered twice HOT 7
- 集群升级kubelet版本高于kube-apiserver版本 HOT 7
- Failing test due to pv expecting a "topology.gke.io/zone" label that is not set in OSS kubernetes nodes on GCE HOT 2
- The event is not obtained from the apiserver cache HOT 2
- Unable to deploy 1.20.0 HOT 6
- Confusing doc on name of object of kind defined by CRD HOT 4
- CPUStats.UsageCoreNanoSeconds is inaccurate on windows - 1/10 of the real value. HOT 3
- [FailingTest] [sig-node] [NodeFeature:SidecarContainers] Containers Lifecycle should terminate sidecars simultaneously if prestop doesn't exit HOT 4
- [FailingTest] [gce-master-scale-correctness] Multiple test failures, mostly networking HOT 7
- HPAContainerMetrics Version V2Beta2 Cannot Implement on Kubernetes 1.30 as "V2Beta2" was remove since Kubernetes 1.26 HOT 2
- [Failing Test] [sig-cloud-provider-gcp] Provider does not support InstanceGroups HOT 4
- Volumeattachment deletion in a detach operation should carry the resourceVersion HOT 6
- Support `env` variables in values from `envFrom` HOT 2
- CVE-2024-3744: azure-file-csi-driver discloses service account tokens in logs HOT 1
- Open API v3 requirement for `PATCH` verb support (introduced PR #115119) HOT 3
- Potentially lengthy I/O by kubelet during pod startup needs to be visible to the user HOT 2
- Add Etcd client support: stop traffic to in-defragmentation-server HOT 2
- Allow labels feature.node.kubernetes.io by cloud provider HOT 2
- Archive legacy-cloud-providers when 1.30 goes out of support HOT 3
- scheduler_perf: define thresholds per test case and set up alerts for results HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kubernetes.