Container runtime

In Chapter 1Monoliths Versus Microservices, we discussed hardware (VMs) and software (containers) virtualization. Docker popularized containers, and it's led to the containerization boom since 2015. The way Docker encapsulated software and its dependencies in a single package built the base for cloud computing as we see it today.

At the time of writing, Docker as a runtime and an engine is the de facto standard for different container orchestration platforms. However, that is changing slowly since the Container Runtime Interface (CRI) (https://cri-o.io) has enabled individual providers to develop container runtimes that are compatible with the Open Container Initiative (OCI) (https://www.opencontainers.org). CRI-O is a lightweight alternative without the need to install Docker as a container runtime for Kubernetes.

Newer container runtimes such as Frakti (https://github.com/kubernetes/frakti) and Kata (https://katacontainers.io) use hardware virtualization to achieve better security and isolation. Kata containers are something between Hyper's runV and Intel's Clear Container. Another container technology is Garden and is used by Cloud Foundry systems. Finally, another widely used container runtime within Alibaba is Pouch (https://github.com/alibaba/pouch). 

As an end user, it should not matter which container runtime is used as that choice is best left to the platform's management team. The consolidation and convergence of a container runtime should emerge in the future.

It is easy to manage containers when there are only a few running on a machine. It becomes complicated to manage a large number of containers when there's a proliferation of container-based applications in an organization. For example, a Docker container can be started using the docker run command to bypass network ports, a storage volume, and optionally a Docker network in order to provide an IP address to the container. The application needs to use this IP address or host port to connect to the container. So far, so good  until we have only a few containers. When proliferation starts, and the number of machines increases, the effort to manage this infrastructure to update IP addresses manually and move storage volumes between machines become time-consuming and not scalable.

This problem is solved by the container orchestration platform, which we will discuss in the next section.  

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.222.117.109