This Week in Programming: Kubernetes Says ‘Don’t Panic’ About Docker Deprecation

By now, you’ve likely heard the news — Kubernetes is deprecating Docker after its v1.20 release — as it was probably expressed in a breathless and panicked tweet or blog post, but fret not, says the Kubernetes team, “It’s not as dramatic as it sounds.”
Nothing changes. Keep using Docker. Kubernetes only leverages a fraction of what Docker is capable of at runtime. In fact both can leverage containerd and runc to manage the underlying processes. The container image is portable. How you build and run them is up to you. https://t.co/TREYiDcU63
— Kelsey Hightower (@kelseyhightower) December 3, 2020
While Kubernetes administrators may have a little configuration to handle, developers likely won’t have to change a thing, and there are a few things to outline here to explain why. For developers, Docker remains a perfectly valid tool for building images that will run on Kubernetes, and there’s nothing to worry about there. What’s really happening here, the team explains, is that “Docker as an underlying runtime is being deprecated in favor of runtimes that use the Container Runtime Interface (CRI) created for Kubernetes.”
Essentially, what you commonly called “Docker” is made up of several pieces, including a user interface among other things. “As a result of this human-friendly abstraction layer, your Kubernetes cluster has to use another tool called Dockershim to get at what it really needs, which is containerd,” the container runtime, the Kubernetes team writes. “That’s not great, because it gives us another thing that has to be maintained and can possibly break. What’s actually happening here is that Dockershim is being removed from Kubelet as early as v1.23 release, which removes support for Docker as a container runtime as a result.”
More moving parts, they explain, means more possibilities for things to break, and this just lessens those possibilities. At the same time, administrators need to be aware of these changes, because there are changes to be made to avoid things breaking. To that end, the team has put together a more aptly titled Dockershim Deprecation FAQ (because it’s really Dockershim, not Docker, being deprecated here) that should answer all your questions.
Okay but like what if we deprecated meetings?
— Jeffrey Sica (@jeefy) December 3, 2020
This Week in Programming
- AWS Launches All The Things: As if you could have missed it, AWS started its re:Invent 2020 virtual event this past week, in what will be a marathon of online keynotes and panels continuing on through Dec. 18. Already, the company has launched a bunch of relevant stuff that would occupy far more space than we have available, so instead we direct you to their nice and succinct (and constantly updated) list of top announcements for 2020, which offers all the launches organized by category, or by launch date, if you prefer. That said, there are a few pertinent releases worth noting, which we’ll include here below, but before we move on to those, we’ll also note that Docker has offered a Docker developer guide to AWS re:Invent, which also covers highlights, specifically with Docker developers in mind. If that describes you, it might be worth a gander.
- Lambda Gets Container Support, Adds .NET 5: First, AWS Lambda, the company’s serverless compute service, has launched container image support, which means you can now package and deploy Lambda functions as container images of up to 10 GB in size, rather than as separate and distinct ZIP files of code. The new feature not only offers operational simplicity, but also allows you to deploy larger workloads with “sizable dependencies, such as machine learning or data-intensive workloads.” Alongside the new feature, AWS is also open sourcing a Lambda Runtime Interface Emulator for local testing, to ensure your container image will run properly on Lambda, which will be included in all AWS-provided base images. Alongside support for container images, the company also launched support .NET container images on Lambda, with an update to the AWS Lambda .NET tooling to support building Lambda functions as container images for .NET Core 2.1 and 3.1, as well as full support for .NET 5 using the AWS Lambda .NET 5 base image.
- AWS Previews Proton for Managing Container and Serverless Deployments: While we’re on the topic of mixed workloads, AWS has also addressed the management of containers and serverless deployments with the public preview of AWS Proton. Aimed at infrastructure teams, AWS Proton will integrate with commonly used CI/CD pipelines and observability tools, provide curated templates that follow AWS best practices, and help visualize and manage the list of service templates in the AWS Management Console.
- Lambda Adds Millisecond Billing: Last up for Lambda, the service has launched 1ms billing granularity, down from its previous 100ms measurements, which the company says will mean that “you are going to pay less most of the time, but it’s going to be more noticeable when you have functions whose execution time is much lower than 100ms, such as low latency APIs.”
- Amazon Debuts a Public Container Registry: Recently, Docker said that it would be rate-limiting image pulls from Docker Hub (see our post on what they are and how to route around them) and everyone, including Amazon, promised an alternative. That alternative has now arrived with the launch of Amazon Elastic Container Registry Public (ECR Public), which “allows you to store, manage, share, and deploy container images for anyone to discover and download globally.” This extends the service’s functionality to include public container images alongside private ones, as well as a public gallery for browsing and searching for public container images, which launches with the Amazon EKS Distro images and hundreds of images from AWS partners. All AWS customers will get 50 GB of free storage each month, while anonymous users will get 500 GB of free data bandwidth each month, and authenticated accounts get free data bandwidth up to 5 TB each month. Workloads running in AWS will get unlimited data bandwidth from any region when pulling publicly shared images from ECR Public.
- Docker’s Community All-Hands Meeting: If more AWS re:Invent isn’t taking up your week ahead, there’s another virtual event to add to your calendar, with Docker’s Community All-Hands, taking place Thursday, Dec. 10 at 8 a.m. PST / 5 p.m. CET. The hour-long event will include company and product updates, live demos, community shout-outs and a Q&A with Docker CEO Scott Johnston, Vice President of Products Donnie Berkholz and VP of Engineering Jean-Laurent de Morlhon. You can register for the event and submit questions for the Q&A beforehand.
- GitHub Looks At The Octoverse: GitHub’s yearly introspection, its State of the Octoverse 2020, has come out to offer some insights on the year past, which as you know has been quite the year. The report offers a deep dive into three specific areas, with a look at developer productivity in the time of COVID, community and collaboration, and open source security. Highlights include increased productivity with 35% more repositories created in 2020 than 2019, a large open source community with more than 56M developers in 2020 with 100M expected by 2025, and security vulnerabilities that often go undetected for more than 4 years before being disclosed and 94% of projects relying on open source components.
- VS Code On The Chromebook: This last one is a topic near and dear to my own heart — using a Chromebook to code. While coding on a Chromebook has, at times, taken a bit of maneuvering, it’s become easier and easier over the years, and this week Microsoft offers a guide to coding and learning with VS Code on Chromebooks. The post is the first of two, and looks at how to install Visual Studio Code on a Chromebook and how to set up an environment to start coding in Python or JavaScript/Node.js. The next post, yet to be published, will look at how to use Remote Development extensions for VS Code to connect to more powerful development environments.
I wish GitHub would add Stories
— Aaron Patterson (@tenderlove) December 3, 2020