Docker support deprecated in Kubernetes will break your clusters, says CNCF ambassador. It's only the runtime, says Docker

Admins have until late 2021 to move away, but Windows containers need caution

"Docker support is being deprecated in Kubernetes. You need to pay attention to this and plan for it. THIS WILL BREAK YOUR CLUSTERS," said CNCF Ambassador Ian Coldwater on Twitter.

This caused consternation among developers but it is admins who need to take note – Kubernetes will still run Docker containers.

Coldwater's tweet was intended to attract attention, and it did. Docker containers are everywhere and embedded in modern application development and deployment. What is going on?

The problem is that "Docker" means different things in different contexts. The release notes for the forthcoming Kubernetes 1.20 state:

Docker support in the kubelet is now deprecated and will be removed in a future release. The kubelet uses a module called "dockershim" which implements CRI support for Docker and it has seen maintenance issues in the Kubernetes community. We encourage you to evaluate moving to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available.

CRI stands for Container Runtime Interface, an API to the runtime that (among other things) starts and stops containers. Docker is a container runtime but it does not implement CRI, hence the need for the shim mentioned in the release notes. It is better to use alternative runtimes such as containerd or CRI-O. Docker itself uses containerd, wrapped with additional features useful in development but generally not required by Kubernetes.

"Developers can still use Docker to build images, no change there," a Docker spokesperson told us. "This primarily impacts ops/admins using Docker Engine for runtime as Kubernetes will just use containerd to run them instead. They will need to transition to using containerd as the container runtime for their Kubernetes clusters. Docker Engine is containerd with some extra stuff like UX that developers don't really need for Kubernetes anyway. This streamlining is good news as containerd now becomes a core for both Docker and for Kubernetes."

Note also that Kubernetes 1.20 still supports Docker. A hasty FAQ on the subject says that "the only thing changing in 1.20 is a single warning log printed at kubelet startup if using Docker as the runtime." The earliest release without dockershim "would be 1.23 in late 2021," said the team.


Docker finally enforces pull rate limits, but reckons only 1.5% of users are affected


That said, there are some issues with changing from Docker to a different runtime. The above FAQ has a list, including logging configuration, node provisioning scripts, Kubectl (command-line tool for Kubernetes) plugins that may require Docker, and integration with GPUs or other special hardware.

It is not mentioned in the FAQ, but there is also an issue with Windows containers. Up until Kubernetes 1.18, Docker was "the only supported container runtime for Windows," as explained in this post. In 1.18, containerd support was added but is alpha quality, so not intended for production use. As of now, "Docker EE-basic 19.03+ is the recommended container runtime for all Windows Server versions. This works with the dockershim code included in the kubelet," state the docs, though "ContainerD 1.4.0-beta.2+ can also be used as the container runtime for Windows Kubernetes nodes." ContainerD Windows support has a "stable release target" for Kubernetes 1.20 or later. The message for those using Windows containers is not to be hasty about switching.

"Fascinating how this docker/docker-shim deprecation has created mass confusion," said VMware's Joe Beda, a co-founder of Kubernetes; while Coldwater reflected: "I'm sorry I caused panic this morning. I wanted to call attention to the deprecation of Docker support in advance so people could make a plan for it, because for some it will be a major breaking change that will take time to fix. It, uh, worked? But it also stressed people out." ®

Similar topics

Other stories you might like

  • DigitalOcean tries to take sting out of price hike with $4 VM
    Cloud biz says it is reacting to customer mix largely shifting from lone devs to SMEs

    DigitalOcean attempted to lessen the sting of higher prices this week by announcing a cut-rate instance aimed at developers and hobbyists.

    The $4-a-month droplet — what the infrastructure-as-a-service outfit calls its virtual machines — pairs a single virtual CPU with 512 MB of memory, 10 GB of SSD storage, and 500 GB a month in network bandwidth.

    The launch comes as DigitalOcean plans a sweeping price hike across much of its product portfolio, effective July 1. On the low-end, most instances will see pricing increase between $1 and $16 a month, but on the high-end, some products will see increases of as much as $120 in the case of DigitalOceans’ top-tier storage-optimized virtual machines.

    Continue reading
  • GPL legal battle: Vizio told by judge it will have to answer breach-of-contract claims
    Fine-print crucially deemed contractual agreement as well as copyright license in smartTV source-code case

    The Software Freedom Conservancy (SFC) has won a significant legal victory in its ongoing effort to force Vizio to publish the source code of its SmartCast TV software, which is said to contain GPLv2 and LGPLv2.1 copyleft-licensed components.

    SFC sued Vizio, claiming it was in breach of contract by failing to obey the terms of the GPLv2 and LGPLv2.1 licenses that require source code to be made public when certain conditions are met, and sought declaratory relief on behalf of Vizio TV owners. SFC wanted its breach-of-contract arguments to be heard by the Orange County Superior Court in California, though Vizio kicked the matter up to the district court level in central California where it hoped to avoid the contract issue and defend its corner using just federal copyright law.

    On Friday, Federal District Judge Josephine Staton sided with SFC and granted its motion to send its lawsuit back to superior court. To do so, Judge Staton had to decide whether or not the federal Copyright Act preempted the SFC's breach-of-contract allegations; in the end, she decided it didn't.

    Continue reading
  • US brings first-of-its-kind criminal charges of Bitcoin-based sanctions-busting
    Citizen allegedly moved $10m-plus in BTC into banned nation

    US prosecutors have accused an American citizen of illegally funneling more than $10 million in Bitcoin into an economically sanctioned country.

    It's said the resulting criminal charges of sanctions busting through the use of cryptocurrency are the first of their kind to be brought in the US.

    Under the United States' International Emergency Economic Powers Act (IEEA), it is illegal for a citizen or institution within the US to transfer funds, directly or indirectly, to a sanctioned country, such as Iran, Cuba, North Korea, or Russia. If there is evidence the IEEA was willfully violated, a criminal case should follow. If an individual or financial exchange was unwittingly involved in evading sanctions, they may be subject to civil action. 

    Continue reading

Biting the hand that feeds IT © 1998–2022