The Kubernetes development team unveiled recently released the new version 1.20, version that continues the cleanup work that started with version 1.19 and introduces more than 40 new features, including 16 enhanced functions and 11 that are finally classified as stable.
The team paid particular attention to the further development of important functions such as cron jobs and Kubelet's CRI support, they have been in the alpha phase for a long time. Features that do not show continuous progress towards stability will be deprecated more quickly in the future.
Kubernetes 1.20 highlights
One of the major changes in Kubernetes 1.20 is the deprecation of Docker, since as mentioned in the changelog, the first beta version of Kubernetes 1.20 announced that the Docker support applies to deprecated Kubelet and it should be completely omitted in one of the next versions.
In the opinion of the development team, Container Runtime Interface integration (CRI) as a plug-in interface for Kubelet has now reached the required level of maturity to be able to switch to CRI compliant container runtime environments that can be used without recompiling.
With this Kubectl Debug goes to betaWith it, users can inspect a running Pod without having to restart it. Additionally, users no longer have to enter the container to verify systems or initiate operations such as debugging utilities or initial network requests from the pod's network namespace. This enhancement removes the dependency on SSH to maintain and debug nodes.
This feature supports common debugging workflows directly from kubectl. The troubleshooting scenarios supported in this version of kubectl:
- Resolve problems with workloads that hang on startup by creating a copy of the pod that uses a different container command or image.
- Solve container problems without distraction by adding a new container with debugging tools, either in a new pod copy or using an ephemeral container.
- Troubleshoot a node by creating a container that runs in the host's namespaces and with access to the host's file system.
Another major change of this new version, are thes stable volume snapshot operations. This feature provides a standard way to enable shadow volume operations and allows users to incorporate shadow copy operations on a portable basis in any supported Kubernetes environment and storage providers.
Additionally, these Kubernetes snapshot primitives act as basic building blocks for developing advanced enterprise-level storage management functionality for Kubernetes, including cluster or application-level backup solutions.
Moreover, Process PID limitation for stability is highlighted, as process IDs are a critical resource on Linux hosts. It is trivial to reach the task limit without reaching any other resource limits and causing instability on a host machine.
Administrators need mechanisms to ensure that user pods cannot induce pid exhaustion that prevents host daemons from running.
Additionally, it is important to ensure that the pids are limited between pods to ensure that they have limited impact on other workloads on the node. After being enabled by default for one year, the GIS node changes the PID limits to GA in SupportNodePidsLimit and SupportPodPidsLimit.
Also in Kubernetes 1.20 IPv4 / IPv6 dual stack has been redeployed to support dual-stack services based on user and community feedback. This allows the IP addresses of the IPv4 and IPv6 service cluster to be assigned to a single service, and also allows a service to move from a single IP stack to a double IP stack and vice versa.
Finally, if you want to know more about it about this new version, you can check the details in the following link.