Relax. Your Dockers skills didn't suddenly become unnecessary. Here what's really going on? It all started very quietly. In the Kubernetes 1.20 release notes, the Orchestrator developers announce: “Dockers support in the kubelet is now deplore and will be removed in a future release." If you think you've just been stabbed in the back, relax.
Yes, the kubelet's "Dockers him" module, which implemented Container Runtime Interface (CRI) support for Dockers, will soon be a thing of the past. So what? It's not so bad.
As Kelsey Hightower of Google Cloud Platform tweeted: “Dockers! Containers. There are pictures of containers. Docker can build them. There are container registers. Dockers can make them work. Dockers can create them but Linux is still the boss”.
Dockers mean a lot of different things
As the developers explained in their aptly named " Don't Panic: Kubernetes and Dockers " blog post, all that is happening is that Kubernetes is portraying Dockers as a container runtime after v 1.20. You can still build containers, use them in registers. All that happens is that Dockers, as the underlying runtime, is deprecated in favor of CRI runtimes.
Images produced by Dockers will continue to work in your cluster as they always have. In short, it is not - I repeat - a drama. Part of the confusion is that people use "Dockers" to mean a lot of different things. Within your Kubernetes group, the job of the container runtime is to make your container images work. A docker is a popular choice for this runtime, but Dockers was not designed to combine with Kubernetes, and there are issues with that.
As the programmers have perceived, "what we call 'Dockers' isn't really a thing - it's a complete technology stack." Dockers include a lot of enhancements for programmers, but Kubernetes doesn't need all of these.
Dockershim's job is to extract only the runtime. The rest is just unnecessary and unwelcome code, which opens up a larger attack surface and requires maintenance. Developers just need to change their container runtime from Dockers to a supported container runtime. It is not that difficult.
Nothing changes, Continue to use Dockers
This change to running Dockers has been happening for some time now. Today, the debate on which runtime to use is between contained and CRI-O. In fact, under the hood of contained and CRI-O, you'll find Dockers runtime, runs.
As Hightower said, “Nothing changes. Continue to use Dockers. Kubernetes only leverages a fraction of what Dockers are capable of doing at runtime. In fact, both can use contained and runs to manage the underlying processes. The container image is portable. How you build and execute them is up to you”.
And Dockers agrees. Die Cao, the senior director of product management at Dockers, explains in an article: "If you are using Dockers, you are already using contained”. In fact, “Dockers created the contained project, with Google and IBM, in 2016, with the goal of this transition in mind. The deskilling of dockers him (and Docker Engine as a runtime) marks the completion of a long-term commitment to deliver a modern runtime for Kubernetes”.
Die Cao continues, “The container images you build using Dockers tools will continue to work on Kubernetes. Build kit, our next generation configuration, has a flexible architecture so that while it can be used as a builder with Dockers, it can also talk directly to contain or runs for use in a configuration where Dockers is not available ".
Did you understand? Relax. Breathe. You can still use Dockers to build containers for Kubernetes. As the Dockers he Deprecation FAQ says, the only thing that changes in version 1.20 is a warning log when kubelet starts up if you are using Dockers as runtime". Dockers will be sticking around until the release of Kubernetes 1.23 in late 2021. The Kubernetes team will work closely with everyone to ensure that we are all on the same page and that dockworkers are not grazed until everyone is ready for the change.