Kubernetes v1.20 heavy release | new version of core themes & interpretation of major changes

Author: Bach (only cloud), bot (only cloud)

Technical proofreading: Wenzi under the stars (Caiyun)

On December 8, U.S. time, Kubernetes v1.20 was officially released. This is the third new version and the last version in 2020. This version contains 42 enhancements: 11 enhancements have stabilized, 15 have entered Beta, and 16 have entered Alpha.

After the previous extension of the release cycle, the v1.20 release cycle returned to the normal 11 weeks. This is one of the most feature-intensive versions recently: Kubernetes updates are still accelerating. This version of Alpha has more enhancements than stable enhancements, which indicates that there is still much room for exploration in the cloud native ecosystem.

Major Themes

The new version mainly revolves around the following themes:

Storage volume snapshot function tends to be stable

Now provides a standard method to trigger the storage volume snapshot function, and allows users to merge snapshot operations on the Kubernetes environment or any supported storage provider in a portable manner. At the same time, Kubernetes snapshot primitives can be used as a basic building block to provide Kubernetes with the ability to develop enterprise-level storage management functions, including applications and cluster backup solutions.

In addition, snapshot support requires the Kubernetes distributor to bundle the Snapshot controller, Snapshot CRD, and verification Webhook. The CSI driver supporting the snapshot function should also be deployed on the cluster.

Kubectl Debug enters Beta

The kubectl alpha debug function entered the Beta version in v1.20 and was renamed kubectl debug. This feature can provide support for common debugging workflows through kubectl. The troubleshooting solutions currently supported by kubectl include:

  • Solve the problem of workload crashes during startup by creating Pod copies that use other container images.
  • Solve the problem of Distroless container by adding a new container in a new copy of Pod or temporary container (temporary container is an Alpha feature that is not enabled by default.) Use debugging tools to add new containers.
  • Troubleshoot nodes by creating containers in the host namespace that can run and have access to the host file system.

As a new built-in command, kubectl debug has a higher priority than any kubectl plugin with the name "debug", so the affected plugin must be renamed.

In v1.20, it is not recommended to continue using kubectl alpha debug. It will also be deleted in subsequent releases. It is recommended to update the script to use kubectl debug.

Beta: API priority and fairness

The API Priority and Fairness (APF) feature introduced in v1.18 is now enabled by default in Kubernetes v1.20, which allows kube-apiserver to classify incoming requests by priority.

IPV4/IPV6 Alpha feature update

The IPv4/IPv6 dual protocol stack is re-implemented based on user and community feedback. It is now possible to assign IPv4 and IPv6 service cluster IP addresses to a single service, or to switch between a single IP stack and a dual IP stack in the service.

GA: Limit process PID

The process ID (PID) is the basic resource on the Linux host. To avoid host instability, it is necessary to achieve a balance between task limits and resource limits.

The administrator needs some mechanism to ensure that the user Pod will not cause PID exhaustion to avoid the host daemon (runtime, kubelet, etc.) from stopping. In addition, make sure to limit the PID between the containers to ensure that it does not affect other workloads on the node. After being enabled by default a year ago, SIG Node pushed the restricted process PID to GA through SupportNodePidsLimit (node-to-pod PID isolation) and SupportPodPidsLimit (capable of limiting PID in Pod).

Alpha: node gracefully closed

Users and cluster administrators expect Pod to run in a predetermined Pod life cycle, including Pod termination. However, when the node is currently shut down, the Pod will not follow the expected Pod termination life cycle and cannot be terminated normally, which may cause workload problems. The GracefulNodeShutdown function now enters Alpha, which allows the kubelet to know that the node system is shut down, so that the Pod can be terminated normally during the system shutdown.

Important update

The following are the notable changes in v1.20:

Dockershim deprecated

v1.20 will deprecate Dockershim, the Docker Container Runtime Interface (CRI), which means that Docker is no longer supported and will be removed in subsequent versions. Since the Docker image follows the Open Container Initiative (OCI) image specification, the image produced by Docker can be used normally in all CRI-compatible runtime clusters. For details, see "The Ins and Outs of Kubernetes Abandoning Docker" .

Exec probe timeout processing

Fixed a long-standing exec probe timeout error, which may affect existing pod definitions. Prior to the release of this fix, the exec probe did not consider the timeoutSeconds field, and would run indefinitely, even exceeding the configured limit, until the result was returned. After this fix, if the value is not specified, the probe will default to 1 second; if the probe time exceeds 1 second, the existing Pod definition may not be satisfied. This fix also adds a feature gate named ExecProbeTimeout, which allows the cluster operator to restore the previous behavior, but in subsequent releases, it will be locked and deleted. If you want to restore the previous behavior, you must set the feature gate to false.

Other updates

The following characteristics are stable

  • RuntimeClass
  • Built-in API type default value
  • Add Pod-Startup Liveness-Probe delay
  • Support CRI-ContainerD on Windows
  • SCTP support Service
  • Add AppProtocol to Service and Endpoint

Important feature update

#19 CronJobs: Used to perform all time-related operations, namely backup, report generation, etc.

Publish logo

For many people, 2020 is a challenging year, but Kubernetes contributors have provided record-breaking enhancements in this release. This is a huge achievement, so the release leader hopes to achieve something by the end of the year and pay tribute to Kubernetes 1.14-Caturnetes, including a "rad" cat named "Humphrey".

image

This article only briefly introduces some important enhancements in Kubernetes v1.20, as well as new features that enterprise users and individual developers may be more concerned about. For more information about the new version, please check the official document:

https://kubernetes.io/blog/2020/12/08/kubernetes-1-20-release-announcement/

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md

Guess you like

Origin blog.51cto.com/14133165/2562871