-
Notifications
You must be signed in to change notification settings - Fork 347
Conversation
ae82d1b to
a91a3d6
Compare
|
LGTM |
docs/proposal.md
Outdated
| Containerd was previously part of Docker, [introduced in Docker 1.11](https://blog.docker.com/2016/04/docker-engine-1-11-runc/), used to manage [runC](https://runc.io/) containers on the node. As is shown below, it creates a containerd-shim for each container, and the shim manages the lifecycle of its corresponding container. | ||
|  | ||
|
|
||
| In Dec. 2016, Docker spun it out into a standalone component, and donated it to [CNCF](https://www.cncf.io/) in Mar. 2017. |
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.
Seems like we should use Docker Inc. here? It is confusing between Docker & Docker Inc in this part.
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.
Done.
docs/proposal.md
Outdated
| CRI-containerd should: | ||
| * Create a network namespace; | ||
| * Call [network plugin](https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/network/plugins.go) to update the options of the network namespace; | ||
| * Let the user containers share the network namespace. |
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.
Is this saying "user containers in the same Pod"?
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.
needs more explanation..
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.
Done.
README.md
Outdated
| @@ -1 +1,22 @@ | |||
| # cri-containerd No newline at end of file | |||
| # cri-containerd | |||
| Cri-containerd is a [containerd](https://containerd.io/) based implementation of Kubernetes [container runtime interface (CRI)](https://github.com/kubernetes/kubernetes/blob/v1.6.0/pkg/kubelet/api/v1alpha1/runtime/api.proto). | |||
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: Is it 'CRI-containerd' here?
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.
Hm, based on https://english.stackexchange.com/questions/9063/how-do-you-capitalize-a-proper-noun-such-as-iphone, it should be "cri-containerd" here. Will update.
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.
Done
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.
Yes unless the proper name of the product is CRI-ContainerD or some such..
|
Glad to see this project, please ping me if needs any help here! |
CONTRIBUTING.md
Outdated
|
|
||
| ### Adding dependencies | ||
|
|
||
| If your patch depends on new packages, add that package with [`godep`](https://github.com/tools/godep). Follow the [instructions to add a dependency](https://github.com/kubernetes/kubernetes/blob/master/docs/devel/development.md#godep-and-dependency-management). |
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.
development.md#godep-and-dependency-management has been moved to https://github.com/kubernetes/community/blob/master/contributors/devel/development.md#dependency-management
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.
Copied the whole doc from other project. Will update. Thanks.
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.
Done
|
Cool. Looking forward to this feature. |
mikebrow
left a comment
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.
See proposed edits....
docs/proposal.md
Outdated
| ## Background | ||
| Containerd is a core container runtime, which provides the minimum set of functionalities to manage the complete container lifecycle of its host system, including container execution and supervision, image distribution and storage, etc. | ||
|
|
||
| Containerd was previously part of Docker, [introduced in Docker 1.11](https://blog.docker.com/2016/04/docker-engine-1-11-runc/), used to manage [runC](https://runc.io/) containers on the node. As is shown below, it creates a containerd-shim for each container, and the shim manages the lifecycle of its corresponding container. |
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.
/s/was previously/is a part of/
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.
Actually, it's not a part of docker now.
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.
right is a dependency.. without it there is no docker.
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.
so maybe was previously part of Docker and will soon become a dependency of future Docker releases.
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.
Because Docker said they were spanning out containerd, so it seems like before they spun out it, it was "part of docker".
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.
right splitting out the component from github.com/docker/docker... yet still including it as a part of docker with respect to the design of docker and running code dependency chain that also includes opencontainers/runc and docker/libcontainer as the major code repositories for the container code.
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.
The docker concept is confusing - docker opensource org, docker inc, docker itself.
I'll just remove this sentence then. :p
docs/proposal.md
Outdated
| In Dec. 2016, Docker spun it out into a standalone component, and donated it to [CNCF](https://www.cncf.io/) in Mar. 2017. | ||
|
|
||
| ## Motivation | ||
| Containerd is a potential alternative to Docker as the runtime for Kubernetes cluster. *Compared with Docker*, containerd has pros and cons. |
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.
/s/is a/is one/
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.
What is the difference?
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.
hints that there are other alternatives.. one of many..
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.
rkt, cri-o, hyperv...
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.
That's why I didn't use the. :)
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.
http://www.differencebetween.com/difference-between-a-and-vs-one-in-english-grammar/
:-) It's tricky. Using a indicates the noun that follows (potential alternative) is singular. Whereas in this case it is plural.. one of many. But this is being picky :)
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.
Hm, you are a good English teacher!
| ## Motivation | ||
| Containerd is a potential alternative to Docker as the runtime for Kubernetes cluster. *Compared with Docker*, containerd has pros and cons. | ||
| ### Pros | ||
| * **Stability**: Containerd has limited scope and slower feature velocity, which is expected to be more stable. |
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.
While containerd is fairly new, going forward it is expected, by design, to have slower feature velocity due mainly to it's limited scope as compared to Docker.
docs/proposal.md
Outdated
| Containerd is a potential alternative to Docker as the runtime for Kubernetes cluster. *Compared with Docker*, containerd has pros and cons. | ||
| ### Pros | ||
| * **Stability**: Containerd has limited scope and slower feature velocity, which is expected to be more stable. | ||
| * **Compatibility**: The scope of containerd meets Kubernetes' requirement pretty well. |
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.
/s/meets Kubernetes' requirement pretty well./aligns with Kubernetes' requirements. Further, any missing features and function should be achievable through community involvement with the containerd team./
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.
Done.
docs/proposal.md
Outdated
| * **Stability**: Containerd has limited scope and slower feature velocity, which is expected to be more stable. | ||
| * **Compatibility**: The scope of containerd meets Kubernetes' requirement pretty well. | ||
| * **Performance**: | ||
| * Containerd consumes less resource because it's only a subset of Docker; |
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.
/s/because it's only a subset of Docker/than Docker at least because it is a subset of Docker/
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.
Done.
docs/proposal.md
Outdated
| CRI-containerd should: | ||
| * Create a network namespace; | ||
| * Call [network plugin](https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/network/plugins.go) to update the options of the network namespace; | ||
| * Let the user containers share the network namespace. |
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.
needs more explanation..
docs/proposal.md
Outdated
|
|
||
| CRI container metrics api needs to be defined ([#27097](https://github.com/kubernetes/kubernetes/issues/27097)). After that, CRI-containerd should translate containerd container metrics into CRI container metrics. | ||
| ### Image Management | ||
| CRI-containerd relies on containerd to manage image. Containerd should provide all function and information required by CRI, and CRI-containerd only needs to do api translation and information reorganization. |
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.
/s/manage image/manage images/
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.
/s/Containerd should provide all function and/At least initially, containerd will provide all of the functionality and image/
docs/proposal.md
Outdated
| ### Out of Scope | ||
| Following items are out of the scope of this design, we may address them in future version as enhancement or optimization. | ||
| * **Debuggability**: One of the biggest concern of CRI-containerd is debuggability. We should provide equivalent debuggability with Docker CLI through `kubectl`, [`cri-tools`](https://github.com/kubernetes-incubator/cri-tools) or containerd CLI. | ||
| * **Built-in CRI support**: The [plugin model](https://github.com/containerd/containerd/blob/master/design/plugins.md) provided by containerd makes it possible to directly build CRI support into containerd as a plugin, which will elimate one more hop from the stack. But because of the [limitation of golang plugin](https://github.com/containerd/containerd/issues/563), we have to either maintain our own branch or push CRI plugin upstream. |
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.
/s/elimate/eliminate/
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.
Done.
docs/proposal.md
Outdated
| | Proposal | | | ✓ | | | | | ||
| | Containerd Feature Complete | ✓ | ✓ | ✓ | | | | | ||
| | Runtime Management Integration | | | ✓ | ✓ | ✓ | ✓ | | ||
| | Image Management Integration | | | | ✓ | ✓ | ✓ | |
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.
Should break these last two out into the separate parts listed above in the 1.7 and 1.8 sections.
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.
Sorry, what do you mean? :)
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.
the table shows runtime management integration as being check marked over 6weeks, same for image management. But the prior paragraphs breakout these two concepts into smaller items that each have their own priority level. The table does not explain when those parts would be worked on.
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.
Done. But only put the P0 items in the roadmap.
| * [P0] Feature complete, pass 100% cri validation test. | ||
| * [P0] Integrate CRI-containerd with Kubernetes, and build the e2e/node e2e test framework. | ||
| * [P1] Address the debuggability problem. | ||
| ### Q2 Roadmap |
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.
Proof of Concept (POC), First Half (1/2), Second Half (2/2)
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.
This is not POC this time. This will be an alpha version.
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.
right just defining the abbr. used in the table.
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.
We only include the Q2 roadmap for now, the future is unpredictable. :)
|
+1 for this project! |
docs/proposal.md
Outdated
| ## Background | ||
| Containerd is a core container runtime, which provides the minimum set of functionalities to manage the complete container lifecycle of its host system, including container execution and supervision, image distribution and storage, etc. | ||
|
|
||
| Containerd was previously part of Docker, [introduced in Docker 1.11](https://blog.docker.com/2016/04/docker-engine-1-11-runc/), used to manage [runC](https://runc.io/) containers on the node. As is shown below, it creates a containerd-shim for each container, and the shim manages the lifecycle of its corresponding container. |
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.
s/As is shown/As shown
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.
Done
docs/proposal.md
Outdated
| In Dec. 2016, Docker spun it out into a standalone component, and donated it to [CNCF](https://www.cncf.io/) in Mar. 2017. | ||
|
|
||
| ## Motivation | ||
| Containerd is a potential alternative to Docker as the runtime for Kubernetes cluster. *Compared with Docker*, containerd has pros and cons. |
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.
s/cluster/clusters
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.
Done
| * [P0] Basic image management. | ||
| * [P0] Container networking. | ||
| * [P1] Container streaming/logging. | ||
| * [P2] Container/ImageFS Metrics. |
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.
Suggestion: Include how you plan to validate the implementation, e.g., what kind of testing can we expect.
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.
Done
|
Thanks for reviewing everyone! Addressed comments and will squash the commit before merging. |
01813e1 to
f6d0668
Compare
mikebrow
left a comment
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.
LGTM
|
@mikebrow Thanks for your patience! :) Will squash and merge this. |
f6d0668 to
e51409a
Compare
Set default scheme in registryEndpoints for host
Remove Linux only block on sandbox mounts
This PR added initial documents including:
/cc @feiskyer @resouer
@kubernetes-incubator/maintainers-cri-containerd