In its latest release, Kubernetes 1.24 Stargazer, Kubernetes has made two major changes. The developers have reduced support for running the Docker Engine container and increased supply chain security through Sigstore.
Dockershim is being phased out. Dockershim lets you use Docker container operations in Kubernetes, but is not designed to integrate with Kubernetes. It also does not support a Kubernetes Container Runtime Interface (CRI). The solution was for dockershim to bridge the gap between containerized Docker and CRI.
The Kubernetes Project has released version 1.24 of Stargazer, which also includes new features of the ubiquitous container orchestration system. According to Kubernetes Consulting Companies, this is the first release in 2022 and before the start of the KubeCon Europe event on May 16.
Removing Dockershim from the bucket
After being phased out in v1.20, the Dockershim component was removed from the bucket in Kubernetes v1.24. In version 1.24, if you use the Docker engine as your container runtime, you must use one of the other supported runtimes (e.g. containererd or CRI-O) or use cri-dockerd.
Beta APIs Are Off by Default
New beta APIs will not be enabled by fault in the clusters. Existing beta APIs and will continue to be enabled by default.
Beta APIs are disabled by default
In this release new beta APIs are disabled by default, but old beta APIs are still enabled by default, which is a bit confusing (although required for compatibility). One of the new beta APIs is the Kubernetes API, which now supports the OpenAPI v3 format. OpenAPI was originally based on a specification called Swagger.
Kubernetes 1.24 supports the API release beta in OpenAPI v3 format.
The OpenAPI Specification (OAS) defines a common interface language for RESTful APIs. It allows people and computers to discover and understand without accessing the source code, or by analyzing network traffic. When defined properly, users can interact with remote services with minimal implementation logic.
OpenAPI definitions can be used by documentation tools to provide APIs, code generation tools to build servers and clients in different programming languages, testing tools, and use cases.
Storage capacity and volume expansion
Storage capacity tracking supports the disclosure of currently available storage capacity via a CSIStorageCapacity object and enhances module planning with slow binding CSI volumes.
The volume plugin adds support for resizing existing volumes.
No Priority on stability
This feature adds a new alternative to PriorityClasses where you can enable or disable pod priority.
Moving Storage Plugin
Work is already underway to migrate the internals from the tree storage plugin to call the CSI plugin while keeping the API built-in. Both the Azure Disk Migration and OpenStack Cinder plugins have been migrated.
Access the gRPC beta test
In Kubernetes 1.24, the gRPC probe feature entered beta and is enabled by default. You can now configure startup, live, and standby controls for gRPC applications compiled by Kubernetes without exposing HTTP endpoints or using additional executables.
Approve with Kubelet Credential Provider Beta
Originally released in alpha on Kubernetes 1.20, kubelet’s support for image providers is now in beta. This allows the kubelet to dynamically retrieve references to the image registry container using the exec plugin instead of storing the references in the node filesystem.
Alpha context connection
Kubernetes 1.24 introduced contextual logging, which allows the caller to control all aspects of the log: output format, details, additional values, and names.
Avoid collisions when assigning IPs to services
Kubernetes 1.24 introduces a new subscription feature that allows you to reserve slots for assigning static IP addresses to the service. By manually enabling this feature, the cluster prefers to automatically allocate the IP address pool of the service, thus reducing the risk of collisions.
ClusterIP service may be affected:
Dynamically, which means that the cluster automatically selects a free IP address from the configured service IP address range. Static, which means the user assigns an IP address within the configured IP address range of the service. The ClusterIP service is unique; Therefore, the attempt to create a service with ClusterIP will show error.
Removed dynamic Kubelet configuration
After being phased out in Kubernetes 1.22, the dynamic configuration Kubelet is removed from the cube. This feature will be removed from Kubernetes API Server 1.26.
The termination changes from the CNI version
Before upgrading to Kubernetes 1.24, be sure to deploy/upgrade a runtime container that has been tested to work properly in this version.
For example, the following container runtime is defined or already defined for Kubernetes:
containerd v1.6.4 and later, v1.5.11 and later
CRI-O 1.24 and higher
There is a service issue when installing and downloading CNI pod network in container v1.6.0-v1.6.3 if the CNI plugin is not updated and/or the CNI configuration version is not declared in the CNI configuration file. The Container team reports that “this issue has been resolved in Container v1.6.4”.
For v1.6.0 – v1.6.3 containers, if you do not update the CNI plugin and/or declare a CNI configuration version, you may encounter the following error conditions: “Incompatible CNI versions” or Failed to destroy network sandbox”
For more information about the update, see the Kubernetes website. The release note is available on GitHub. Kubernetes consulting companies are looking forward to the 1.24 webinar release on May 24, 2022 from 9:45 am until 11:00 pm PT. Registration and program information is available on the event website.
Kubernetes 1.24 can be downloaded from GitHub. There are also interactive tutorials to help you get started with Kubernetes. All release notes can be found in Kubernetes release announcements.