8000 Vendor cri-containerd into containerd as a native plugin. · Issue #2120 · containerd/containerd · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Vendor cri-containerd into containerd as a native plugin. #2120
Closed
@Random-Liu

Description

@Random-Liu

We propose to vendor cri-containerd into containerd as a native plugin.

Current Progress

  • containerd can add CRI plugin by adding following line in cmd/containerd/builtin_linux.go:
import _ github.com/containerd/cri-containerd

The PR to vendor cri-containerd into containerd is under review #2097.

Overhead

  • Memory usage without workload.
containerd:
VmHWM:	   25904 kB
VmRSS:	   25904 kB
RssAnon:	   10420 kB
RssFile:	   15484 kB

containerd+cri:
VmHWM:	   46104 kB
VmRSS:	   46104 kB
RssAnon:	   23872 kB
RssFile:	   22232 kB
  • Containerd binary size:
containerd:                  22.77 mB
containerd+cri:              41.00 mB

Next Steps

Open Questions

  • How to test CRI plugin in cri-containerd repo?
    • Option 1: Keep standalone cri-containerd mode, and test against that mode.
      • Pros: Easy.
      • Cons:
        • It is an overhead to maintain the standalone mode.
        • Standalone cri-containerd + containerd != containerd+cri. There might still be surprise when we actually update cri plugin in containerd.
    • Option 2: Automatically update containerd code with script. Automatically replace old CRI plugin code with new CRI plugin code.
      • Pros: No interface change on neither side.
      • Cons: We need complex and ugly script to automatically do this, the script will also be very hard to maintain.
    • Option 3: Build cri-containerd in plugin mode, and test the plugin binary with containerd.
    • Option 4: Provide CLI package in containerd, and cri-containerd vendor that CLI package and build binary for testing.
      • Pros: Easy and clear.
      • Cons: Extra maintenance overhead for containerd, and potential community split.
    • Option 5: Add RPC based containerd plugin interface.
      • Cons: Extra complexity.

Any questions, suggestions and feedback are welcome.

@containerd/containerd-maintainers @containerd/containerd-reviewers

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0