Skip to content

QuarkContainer Release v0.1.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@qingqu qingqu released this 01 Aug 19:23
· 1491 commits to main since this release
54cfdc6

Release Summary

The quark container v0.1.0 release includes supporting Container Runtime Interface (CRI), initial version of TCP Socket over RDMA (TSoR) control plane and data plane and fix multiple reliability/Performance bug fixes.

*Note: To set up k8s using quark container, it depends on quarkcni, please refer to k8s setup to configure.

Key Features and Improvements

1. CRI support

  • Develop Quark contained Shim based on Containerd Shim V2.
  • Support Sandbox/Subcontainer in Quark runtime
  • Kubernetes integration test with MiniKube and K8S cluster.

2. TCP over RDMA support control plane

  • k8s can run pods using Quark runtime
  • Quark in k8s supports both RDMA CNI or other CNIs such as flannel
  • Added Quark Control Manager (quarkcm) and Quark RDMA CNI (quarkcni)
  • Quark Control Manager watches k8s cluster's node and pod and send changed data to RDMA service
  • RDMA service setups connections between nodes automatically

3. TCP over RDMA support data plane

  • RDMA support for following socket APIs:

    • bind
    • listen
    • connect
    • read* (a group of functions related to read: read, recvfrom, receive)
    • write (a group of functions related to write: write, sendto, send)
    • getsockname
    • getpeername
  • RDMA service which acts as a standalone process to routing network traffic between local pods and remote nodes

    • Use share memory and lockless queue between RDMA service and quark container to gain best performance
    • Share RDMA Queue Pair between nodes for multiple quark containers to make RDMA NIC more scalable
    • Create RDMA channel state machine to simulate TCP state diagram

4. Reliability/Performance bug fixes

  • Fix TLB shoot down handling bug
  • Increase memory page management parallelism
  • Change process memory space lock from mutex to upgradable RW lock