Kubernetes 1.20: The Runtime and Storage Evolution

Table of Contents
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 debuggraduated toward stable with more flags.
Milestones Timeline
| Date | Event |
|---|---|
| Dec 8 2020 | Kubernetes 1.20 officially released |
| Dec 2020–Jan 2021 | Dockershim deprecation announced and documented |
| Early 2021 | CSI 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 Version | Release Date | Notes |
|---|---|---|
| 1.20.0 | 2020-12-08 | Initial release |
| 1.20.1+ | various dates | Maintenance 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
| Aspect | Description |
|---|---|
| Release Date | December 8, 2020 |
| Key Innovations | Dockershim deprecation, CSI snapshot GA, API fairness, debug tools |
| Significance | Major 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.