Recently, Kubernetes mentioned in version 1.20 of ChangeLog that Docker will be discarded as a container runtime.

Docker support in Kubelet is deprecated and will be removed in future releases. Kubelet previously used a module called Dockershim to implement CRI support for Docker. However, the Kubernetes community has identified maintenance issues associated with this and recommends that you consider using a usable container runtime that includes a full implementation of CRI.

While this issue is getting a lot of attention and discussion in the industry, users shouldn’t be too alarmed. For details, please refer to the explanation in the article K8s is dumping Docker, and don’t panic: Kubernetes and Docker published by CNCF official account.

Is Kubernetes really ditched Docker?

Kubernetes 1.20 mentions that dockershim shim will no longer be maintained and will be gradually removed in subsequent releases, which means that the proportion of Docker in the future Kubernetes environment will gradually decrease. In short, Docker is indeed being deprecated as an underlying runtime, but users shouldn’t panic, docker-generated images will continue to work with all runtimes in a user’s cluster.

Since open source in 2013, Docker project has led the wave of container technology, and is still the first choice in many container environments, with high maturity and the most stable integration with Kubernetes. Docker technology itself has excellent performance in user experience, container construction and other aspects, and will continue to be active in development environment, image construction and other aspects.

Secondly, the Docker project has evolved in recent years to break up into smaller projects such as Containerd/Runc, and these new projects will continue to shine in the kubernetes environment.

Does it affect users who already use K8S + Docker?

As a provider of container cloud products and services for enterprise users, BCLOUD has also noticed this incident, and we have also received concerns from some customers about this issue.

The container cloud product developed independently by Kubernetes is one of the core products of BCLOUD. Therefore, Bo Yun has been deeply engaged in the improvement and enhancement of container cloud underlying core technology, and actively participate in the contribution of open source community, and continue to pay attention to and study the trend of Kubernetes continuously enhanced. To enable enterprise customers to avoid the risks of a single technology binding, Bo Yun Container cloud platform has been implemented to provide support for multiple container runtimes in addition to Docker.

At present, Boyun Container cloud platform uses Docker as the container runtime under kubernetes environment by default, but also supports any specific implementation compatible with CRI interface, such as CRI-O, Containerd, etc., and has been deployed in practice projects. I have a lot of experience in technical control and landing practice.

For users who already use Kubernetes + Docker, this change will have no impact on their existing systems. For projects under construction, this change will not affect ongoing projects. Users can choose to continue using kubernetes+ Docker, which has proven stability, or choose to use community-recommended new runtimes such as Containerd and Cri-O.

Bcloud will provide system upgrade service options for customers to choose voluntarily: 1. If you need to migrate existing applications to the new runtime, you can consider using the multi-cluster management capability to gradually migrate applications. 2. In a new environment, you can directly consider using containerd, Cri-O, and other new runtimes supported by Bo Cloud Container Cloud platform.

If you have more questions, you are welcome to consult Boyun.