docker cri cni csi

Core Idea

The platform plugs into containers through three interfaces: CRI for runtimes, CNI for networking, and CSI for storage, each a contract that keeps the pieces interchangeable.

  • Container Runtime Interface: how the orchestrator talks to a container runtime.
  • Container Networking Interface: how pod networks get wired.
  • Container Storage Interface: how storage gets attached.

Container Runtime Interface

Most Popular Container Runtimes
What are Container Runtimes

  • Kubernetes used Docker alone as the container runtime engine, and all the code to work with Docker was embedded within the Kubernetes source code. Other container runtimes, such as rkt and CRI-O.
  • The Container Runtime Interface is a standard that defines how an orchestration solution like Kubernetes would communicate with container runtimes like Docker. If any new container runtime interace is developed, they can simply follow the CRI standards.

Container Networking Interface

  • To support different networking solutions, the container networking interface was introduced. Any new networking vendors could simply develop their plugin based on the CNI standards and make their solution work with Kubernetes.

Container Storage Interface