google / google/gvisor

Provide urpc alternative to OCI

Open
#238 4 comments 0 reactions 1 assignee Claimed by @zkoopmans View on GitHub
area: integration priority: p2 type: enhancement
Dominant language
Go
Stars
19.3k
Forks
2k
Avg merge
3d 5h
Merged PRs (30d)
264

Description

Using OCI to create and manage containers require many process invocations to start a Pod. It also requires many satellite processes to be running: one `runsc wait` process for every container, another `runsc exec` for every exec invocation, `runsc events --stats` to capture stats. Using processes also makes it hard to distinguish between command errors and errors coming from the container, e.g. `runsc exec` may fail because there is an invalid parameter, or because the application being executed failed with an invalid parameter.

Many of these problems go away if we had an RPC interface that gvisor-containerd-shim can call directly. The proposal is to create a client library that talks directly to the sandbox using the urpc endpoint that is already exposed. This would be a full replacement of OCI, requiring no extra process invocation to create and manage pod, including terminal support.

gvisor-containerd-shim would use this new API exclusively, leaving the OCI implementation to be used by docker and other users of runsc. Multi-container support, and gVisor specific annotations can be removed from the command-line interface.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.