2min

De Cloud Native Computing Foundation (CNCF) heeft de open source Container Runtime Interface — Orchestrator (CRI-O) runtime geadopteerd. Volgens ZDNet wordt het orchestration-programma daarmee mogelijk de top van container deployments. 

De reden achter die stijging naar de top is volgens ZDNet dat er een orchestration-programma vereist is om containers op schaal te draaien. Aan het einde van 2017 werd kubernetes de meest populaire container orchestrator. Nu is het mogelijk om Docker te gebruiken om containers onder kubernetes te draaien, maar het lichtgewicht CRI-O runtime werkt goed samen met kubernetes.

CRI begon als een API om calls naar container runtimes te definiëren. Daarmee werd het mogelijk om kubernetes-vriendelijke, lichtgewicht container runtime-programma’s te maken. CRI-O was de eerste kubernetes CRI-compatibele container runtime. Het werd ontwikkeld door Google en Red Hat, met hulp va Intel, Suse en IBM.

De populariteit van CRI-O komt volgens kubernetes-mede-oprichter Brendan Burns deels doordat “CRI-O niet bedoeld was om het wiel opnieuw uit te vinden, maar om gedeelde componenten te gebruiken en aanpakken die getest zijn in productie te verfijnen”.

Functies

CRI-O heeft dan ook diverse functies. Zo de wordt github.com/containers/storage library gebruikt om lagen te beheren en om root file-systemen voor de containers in een pod te creëren. Hierbij worden OverlayFS, devicemapper, AUFS en btrfs geïmplementeerd, waarbij OverlayFS de standaard driver is.

De github.com/container/image library wordt vervolgens gebruikt om afbeeldingen uit registries te halen. Op dit moment ondersteunt het Docker schema2/version 1, evenals schema 2/version 2. Daarnaast behaalt het alle Docker- en kubernetes-testen.

Op het gebied van networking wordt de Container Network Interface (CNI) gebruikt om networking voor de pods op te zetten. Diverse CNI-plugins zoals Flannel, Weave, Cilium en OpenShift-SDN zijn met CRI-O getest en werken zoals verwacht. Voor het monitoren van de containers, het afhandelen van logging van het container-process, het bieden van attach clients en het detecteren en rapporteren van Out Of Memory-situaties, wordt github.com/containers/conmon gebruikt.

Tot slot worden container security separation policies geleverd door een serie aan tools, waaronder SELinux, Capabilities en seccomp.