Kubernetes 1.20: The Runtime and Storage Evolution

Kubernetes 1.20: The Runtime and Storage Evolution

Introduction

On December 8 2020, the Kubernetes project announced version 1.20, one of the most substantial releases in recent years.
This release included over 40 enhancements — 11 moving to GA, 15 to Beta, and 16 newly introduced as Alpha — and marked a major step forward in runtime independence, storage evolution, and API maturity.


Official Highlights

1. Dockershim Deprecation

The most talked-about change in Kubernetes 1.20 was the deprecation of Dockershim, the component that allowed the Docker Engine to integrate with Kubernetes.
This announcement did not mean Docker would stop working — instead, Kubernetes moved toward supporting runtimes via the Container Runtime Interface (CRI) such as containerd and CRI-O, with the Dockershim removal slated for 1.24—giving cluster operators multiple release cycles to plan migrations.

“Kubernetes is not dropping support for containers — it is standardizing how runtimes connect.”
— Kubernetes Release Team, Dec 2020

This decision made runtime management more modular and future-proof.


2. CSI Storage Enhancements

Storage saw major improvements with the CSI snapshot feature graduating to GA, allowing persistent volume snapshots to be used across providers and plugins.
Additional improvements included:

  • Volume snapshot restore and clone workflows with standardized CRDs and sidecars;
  • CSI Migration for AWS EBS and vSphere;
  • Enhanced volume resizing and attach/detach logic;
  • Generic Ephemeral Volumes (Alpha) and CSIStorageCapacity (Beta) for smarter scheduling.

3. API and Workload Stability

  • Process Namespace Sharing and RuntimeClass reached maturity;
  • CronJob controller rewrite entered beta, improving reliability for scheduled workloads;
  • kubectl debug improved observability for live Pods with ephemeral containers;
  • API Priority and Fairness became enabled by default, smoothing API server load.

These updates enhanced operational consistency across environments and runtimes.


4. Node Lifecycle & Quality of Life Improvements

  • Graceful Node Shutdown (Beta) introduced controlled pod eviction during reboots or maintenance;
  • kubectl debug provided simpler troubleshooting for live Pods;
  • Kubelet credential provider plugins (Alpha) enabled external registry auth;
  • kubectl alpha debug graduated toward stable with more flags.

Milestones Timeline

DateEvent
Dec 8 2020Kubernetes 1.20 officially released
Dec 2020–Jan 2021Dockershim deprecation announced and documented
Early 2021CSI snapshot GA adopted by major cloud providers

Patch Releases for 1.20

Patch releases (1.20.x) focused on runtime compatibility, bug fixes, and storage stability.

Patch VersionRelease DateNotes
1.20.02020-12-08Initial release
1.20.1+various datesMaintenance and runtime compatibility updates

Legacy and Impact

Kubernetes 1.20 signified the platform’s transition to a more modular and mature runtime ecosystem.
By deprecating Dockershim, graduating CSI features, and enhancing node management, Kubernetes became leaner, more consistent, and ready for long-term enterprise deployments.


Summary

AspectDescription
Release DateDecember 8, 2020
Key InnovationsDockershim deprecation, CSI snapshot GA, API fairness, debug tools
SignificanceMajor step toward runtime independence and storage maturity

Next in the Series

Next up: Kubernetes 1.21 (April 2021) — featuring graceful node shutdown GA, immutable Secrets and ConfigMaps, and progress in pod security policies.