-
Notifications
You must be signed in to change notification settings - Fork 40.1k
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
Add hyper container runtime #13079
Add hyper container runtime #13079
Conversation
Can one of the admins verify that this patch is reasonable to test? (reply "ok to test", or if you trust the user, reply "add to whitelist") If this message is too spammy, please complain to ixdy. |
9fb80a1
to
38dbabb
Compare
Cool! WRT this as a patch - I think the hardest part is going to be sure that we're happy with the interface between core kubelet and runtimes. Since it's been on my plate this week, things like the networking tie-ins to runtimes is less-than-obvious. Now that we have potentially 3 implementations of runtime, we should pause and think about abstractions. |
38dbabb
to
91df0e6
Compare
@thockin The interface between core kublet and runtimes is ok except networking. Although it works well for current kubernetes networking model, it is very difficult to do things like multi-tenant networking. |
9d9ac63
to
29d9564
Compare
cc @kubernetes/goog-node |
We have some pod-level abstraction in We probably want to discuss this PR in the node team meeting, so I am assigning it to @dchen1107 for now. |
Labelling this PR as size/XXL |
Have you discussed this PR in the node team meeting? |
for name, volume := range volumeMap { | ||
glog.V(4).Infof("Hyper: volume %s %s", name, volume.GetPath()) | ||
v := make(map[string]string) | ||
v["name"] = name |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: might be good to make "name"
,"source"
, etc constants to avoid magic strings all over.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pmorie Thanks for suggestion, commits updated.
29d9564
to
06e0e72
Compare
@feiskyer, @dchen1107 was out last week. We'll talk about this either today or tomorrow. |
06e0e72
to
8b62cb7
Compare
@thockin @dchen1107 @yujuhong What's the progress of node team meeting? |
8b62cb7
to
d09ecb8
Compare
Thanks for your pr, and really nice work by implementing today's Container Runtime interface. But I am hesitated to take this as is for now:
On another hand, I love this since I believe it could enable new usecases for the customer. Is it possible you give a demo to our community hangout every Friday 10:00am? If there are big demanding on this, we could re prioritize this? |
First off, let me say that it would be awesome to have support for hyper and I would love to see a demo of this at community meeting sometime. I think the right way forward for this PR (and other PRs like this in the future) is to implement a client/server version of the container runtime, so that container runtimes can be run outside of the kubelet process and implementations can be built in the kubernetes/contrib tree rather than the core tree. To that end, I have filed #13768. @feiskyer if you are up for it, we would be happy to merge an implementation of such a client/server interface (if you can build it...) And then you can use that as the basis for integrating hyper into kubernetes. (and it can also be the basis for additional experimental container runtimes) Let me know what you think of this, I would be happy to help with design, reviews, etc. Best! |
I think so, there should be an abstraction that most pod management codes could be reused accross all container runtimes.
Currently, kubelet container runtime is strongly binding to Kubernetes core. I don't think it's easy to make a runtime as part of contrib. If you have any way, please tell me. cAdvisor is not working with hyper, since hyper is vm-based. I think a new plugin/agent for Heapster is more appropriate.
Hyper is still on quick evolving, more features can be added to hyper if needed.
Hyper team is the maintainer of this runtime. We could work togather on setting up all the tests needed.
I could show some hyper demos on community hangout, please tell me how to join community hangout. By the way, is |
@brendandburns It's a great idea of making a c/s version of the container runtime and I'm very glad to be up for it. |
Yes, community hangout is every Friday 10:00am US-Pacific time. I can put your demo to hangout schedule. How about Sept 18th? |
@dchen1107 Time is ok, how can I join community hangout? |
@feiskyer I scheduled your demo on Sept 18th, you can access it at https://docs.google.com/document/d/1VQDIAB0OqiSjIHI8AWMvSdceWhnz56jNpZrLs6o7NJY/edit# Can you access this link: https://plus.google.com/hangouts/_/google.com/k8s-community?authuser=0 |
@dchen1107 Thanks. |
@feiskyer I am assuming you cannot access hangout link I provided above without any issue, and the demo is tomorrow at 10:am PST. Also could you please send me your personal email address to dawnchen@google.com? I want to invite you to our discussion on Container Runtime interface. Thanks! |
@dchen1107 Thanks for tip, I can access hangout without any issue. |
65942fb
to
5451a2e
Compare
Hyper is a hypervisor-agnostic docker engine, see https://hyper.sh for more documentation.
5451a2e
to
8e990d8
Compare
8e990d8
to
ef13667
Compare
I'm closing this because of #17048 |
Add hyper container runtime for kubernetes.
Hyper is a Hypervisor-agnostic Docker Engine that allows you to run Docker images on any hypervisor (KVM, Xen, etc.).
Technically speaking,
Hyper = Hypervisor + Kernel + Docker Image
By containing applications within separate VM instances and kernel spaces, Hyper is able to offer an excellent Hardware-enforced Isolation, which is much needed in multi-tenant environments.
Hyper also promises Immutable Infrastructure by eliminating the middle layer of Guest OS, along with the hassle to configure and manage them.
See https://hyper.sh for more documentation.
Task list:
There will be another commit on kubelet logs, since hyper doesn't support
hyper log
now.Note that host network, socat-based port-forwarding and privileged containers is not supported.