What does docker runtime deprecation in Kubernetes mean for Developers?
Kubernetes is deprecating Docker as a container runtime after v1.20.
At v1.20, you will get a deprecation warning for Docker. When Docker runtime support is removed in a future release (currently planned for the 1.22 release in late 2021) of Kubernetes it will no longer be supported and you will need to switch to one of the other compliant container runtimes, like containerd or CRI-O.
But this will not affect application developers using Docker desktop or Docker for Mac to build and run their images.
This change is for Docker runtime inside the Kubernetes cluster and is different from the docker used during development.
The image created by docker during development or CI pipeline is not specific to docker, but it’s an OCI (Open Container Initiative) compliant image.
So for now as a developer you would be able to continue:
- Writing your dockerfile(s) the same way
- Building and pushing your OCI compliant docker image to an image registry the same way
- Using the OCI compliant image in your Kubernetes deployment YAMLs the same way
There is one important piece that will break for you as a developer if you are using Docker-in-Docker construct with your CI tool running on Kubernetes. There are lots of opinions on this pattern, and we prefer to use an alternative utility called kaniko as it does not require privileged access by the CI container. There are other utilities out there as well like img and buildkit to accomplish image building within containers running on Kubernetes.
Kubernetes is an ever-evolving project and story, thus nobody is 100% expert on it. With flexibility, it brings the complexity to run the apps and the peripheral integrations with it. Thus here at initializ, our goal is to make running your Apps on Kubernetes as easy as possible while providing you the ability to integrate with your favorite cloud-native services.
You can contact us to try our development platform for free.