-
Notifications
You must be signed in to change notification settings - Fork 14.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorrect information regarding VolumeSnapshot API corrected #34153
Closed
Closed
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
469441b
Incorrect information regarding VolumeSnapshot API corrected
nitishfy 3d44666
Merge branch 'kubernetes:main' into Dev/Nitish/IncorrectInfo
nitishfy c9ad526
Merge branch 'kubernetes:main' into Dev/Nitish/IncorrectInfo
nitishfy 3340ba8
Incorrect Information made Correct along with reference link
nitishfy 5df8d5d
Merge branch 'Dev/Nitish/IncorrectInfo' of https://github.com/NitishK…
nitishfy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,27 +9,27 @@ slug: upcoming-changes-in-kubernetes-1-24 | |
|
||
As Kubernetes evolves, features and APIs are regularly revisited and removed. New features may offer | ||
an alternative or improved approach to solving existing problems, motivating the team to remove the | ||
old approach. | ||
|
||
We want to make sure you are aware of the changes coming in the Kubernetes 1.24 release. The release will | ||
**deprecate** several (beta) APIs in favor of stable versions of the same APIs. The major change coming | ||
in the Kubernetes 1.24 release is the | ||
[removal of Dockershim](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2221-remove-dockershim). | ||
This is discussed below and will be explored in more depth at release time. For an early look at the | ||
changes coming in Kubernetes 1.24, take a look at the in-progress | ||
old approach. | ||
|
||
We want to make sure you are aware of the changes coming in the Kubernetes 1.24 release. The release will | ||
**deprecate** several (beta) APIs in favor of stable versions of the same APIs. The major change coming | ||
in the Kubernetes 1.24 release is the | ||
[removal of Dockershim](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2221-remove-dockershim). | ||
This is discussed below and will be explored in more depth at release time. For an early look at the | ||
changes coming in Kubernetes 1.24, take a look at the in-progress | ||
[CHANGELOG](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md). | ||
|
||
## A note about Dockershim | ||
|
||
It's safe to say that the removal receiving the most attention with the release of Kubernetes 1.24 | ||
is Dockershim. Dockershim was deprecated in v1.20. As noted in the [Kubernetes 1.20 changelog](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#deprecation): | ||
"Docker support in the kubelet is now deprecated and will be removed in a future release. The kubelet | ||
uses a module called "dockershim" which implements CRI support for Docker and it has seen maintenance | ||
issues in the Kubernetes community." With the upcoming release of Kubernetes 1.24, the Dockershim will | ||
finally be removed. | ||
It's safe to say that the removal receiving the most attention with the release of Kubernetes 1.24 | ||
is Dockershim. Dockershim was deprecated in v1.20. As noted in the [Kubernetes 1.20 changelog](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#deprecation): | ||
"Docker support in the kubelet is now deprecated and will be removed in a future release. The kubelet | ||
uses a module called "dockershim" which implements CRI support for Docker and it has seen maintenance | ||
issues in the Kubernetes community." With the upcoming release of Kubernetes 1.24, the Dockershim will | ||
finally be removed. | ||
|
||
In the article [Don't Panic: Kubernetes and Docker](/blog/2020/12/02/dont-panic-kubernetes-and-docker/), | ||
the authors succinctly captured the change's impact and encouraged users to remain calm: | ||
the authors succinctly captured the change's impact and encouraged users to remain calm: | ||
> Docker as an underlying runtime is being deprecated in favor of runtimes that use the | ||
> Container Runtime Interface (CRI) created for Kubernetes. Docker-produced images | ||
> will continue to work in your cluster with all runtimes, as they always have. | ||
|
@@ -39,71 +39,71 @@ to container runtimes that are directly compatible with Kubernetes. You can find | |
[Migrating from dockershim](/docs/tasks/administer-cluster/migrating-from-dockershim/) | ||
page in the Kubernetes documentation. | ||
|
||
For more information about why Kubernetes is moving away from dockershim, check out the aptly | ||
named: [Kubernetes is Moving on From Dockershim](/blog/2022/01/07/kubernetes-is-moving-on-from-dockershim/) | ||
For more information about why Kubernetes is moving away from dockershim, check out the aptly | ||
named: [Kubernetes is Moving on From Dockershim](/blog/2022/01/07/kubernetes-is-moving-on-from-dockershim/) | ||
and the [updated dockershim removal FAQ](/blog/2022/02/17/dockershim-faq/). | ||
|
||
Take a look at the [Is Your Cluster Ready for v1.24?](/blog/2022/03/31/ready-for-dockershim-removal/) post to learn about how to ensure your cluster continues to work after upgrading from v1.23 to v1.24. | ||
Take a look at the [Is Your Cluster Ready for v1.24?](/blog/2022/03/31/ready-for-dockershim-removal/) post to learn about how to ensure your cluster continues to work after upgrading from v1.23 to v1.24. | ||
|
||
## The Kubernetes API removal and deprecation process | ||
|
||
Kubernetes contains a large number of components that evolve over time. In some cases, this | ||
evolution results in APIs, flags, or entire features, being removed. To prevent users from facing | ||
breaking changes, Kubernetes contributors adopted a feature [deprecation policy](/docs/reference/using-api/deprecation-policy/). | ||
This policy ensures that stable APIs may only be deprecated when a newer stable version of that | ||
same API is available and that APIs have a minimum lifetime as indicated by the following stability levels: | ||
Kubernetes contains a large number of components that evolve over time. In some cases, this | ||
evolution results in APIs, flags, or entire features, being removed. To prevent users from facing | ||
breaking changes, Kubernetes contributors adopted a feature [deprecation policy](/docs/reference/using-api/deprecation-policy/). | ||
This policy ensures that stable APIs may only be deprecated when a newer stable version of that | ||
same API is available and that APIs have a minimum lifetime as indicated by the following stability levels: | ||
|
||
* Generally available (GA) or stable API versions may be marked as deprecated but must not be removed within a major version of Kubernetes. | ||
* Beta or pre-release API versions must be supported for 3 releases after deprecation. | ||
* Alpha or experimental API versions may be removed in any release without prior deprecation notice. | ||
* Generally available (GA) or stable API versions may be marked as deprecated but must not be removed within a major version of Kubernetes. | ||
* Beta or pre-release API versions must be supported for 3 releases after deprecation. | ||
* Alpha or experimental API versions may be removed in any release without prior deprecation notice. | ||
|
||
Removals follow the same deprecation policy regardless of whether an API is removed due to a beta feature | ||
graduating to stable or because that API was not proven to be successful. Kubernetes will continue to make | ||
sure migration options are documented whenever APIs are removed. | ||
Removals follow the same deprecation policy regardless of whether an API is removed due to a beta feature | ||
graduating to stable or because that API was not proven to be successful. Kubernetes will continue to make | ||
sure migration options are documented whenever APIs are removed. | ||
|
||
**Deprecated** APIs are those that have been marked for removal in a future Kubernetes release. **Removed** | ||
APIs are those that are no longer available for use in current, supported Kubernetes versions after having | ||
been deprecated. These removals have been superseded by newer, stable/generally available (GA) APIs. | ||
**Deprecated** APIs are those that have been marked for removal in a future Kubernetes release. **Removed** | ||
APIs are those that are no longer available for use in current, supported Kubernetes versions after having | ||
been deprecated. These removals have been superseded by newer, stable/generally available (GA) APIs. | ||
|
||
## API removals, deprecations, and other changes for Kubernetes 1.24 | ||
|
||
* [Dynamic kubelet configuration](https://github.com/kubernetes/enhancements/issues/281): `DynamicKubeletConfig` is used to enable the dynamic configuration of the kubelet. The `DynamicKubeletConfig` flag was deprecated in Kubernetes 1.22. In v1.24, this feature gate will be removed from the kubelet. See [Reconfigure kubelet](/docs/tasks/administer-cluster/reconfigure-kubelet/). Refer to the ["Dynamic kubelet config is removed" KEP](https://github.com/kubernetes/enhancements/issues/281) for more information. | ||
* [Dynamic kubelet configuration](https://github.com/kubernetes/enhancements/issues/281): `DynamicKubeletConfig` is used to enable the dynamic configuration of the kubelet. The `DynamicKubeletConfig` flag was deprecated in Kubernetes 1.22. In v1.24, this feature gate will be removed from the kubelet. See [Reconfigure kubelet](/docs/tasks/administer-cluster/reconfigure-kubelet/). Refer to the ["Dynamic kubelet config is removed" KEP](https://github.com/kubernetes/enhancements/issues/281) for more information. | ||
* [Dynamic log sanitization](https://github.com/kubernetes/kubernetes/pull/107207): The experimental dynamic log sanitization feature is deprecated and will be removed in v1.24. This feature introduced a logging filter that could be applied to all Kubernetes system components logs to prevent various types of sensitive information from leaking via logs. Refer to [KEP-1753: Kubernetes system components logs sanitization](https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1753-logs-sanitization#deprecation) for more information and an [alternative approach](https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1753-logs-sanitization#alternatives=). | ||
* In-tree provisioner to CSI driver migration: This applies to a number of in-tree plugins, including [Portworx](https://github.com/kubernetes/enhancements/issues/2589). Refer to the [In-tree Storage Plugin to CSI Migration Design Doc](https://github.com/kubernetes/design-proposals-archive/blob/main/storage/csi-migration.md#background-and-motivations) for more information. | ||
* [Removing Dockershim from kubelet](https://github.com/kubernetes/enhancements/issues/2221): the Container Runtime Interface (CRI) for Docker (i.e. Dockershim) is currently a built-in container runtime in the kubelet code base. It was deprecated in v1.20. As of v1.24, the kubelet will no longer have dockershim. Check out this blog on [what you need to do be ready for v1.24](/blog/2022/03/31/ready-for-dockershim-removal/). | ||
* [Storage capacity tracking for pod scheduling](https://github.com/kubernetes/enhancements/issues/1472): The CSIStorageCapacity API supports exposing currently available storage capacity via CSIStorageCapacity objects and enhances scheduling of pods that use CSI volumes with late binding. In v1.24, the CSIStorageCapacity API will be stable. The API graduating to stable initates the deprecation of the v1beta1 CSIStorageCapacity API. Refer to the [Storage Capacity Constraints for Pod Scheduling KEP](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1472-storage-capacity-tracking) for more information. | ||
* In-tree provisioner to CSI driver migration: This applies to a number of in-tree plugins, including [Portworx](https://github.com/kubernetes/enhancements/issues/2589). Refer to the [In-tree Storage Plugin to CSI Migration Design Doc](https://github.com/kubernetes/design-proposals-archive/blob/main/storage/csi-migration.md#background-and-motivations) for more information. | ||
* [Removing Dockershim from kubelet](https://github.com/kubernetes/enhancements/issues/2221): the Container Runtime Interface (CRI) for Docker (i.e. Dockershim) is currently a built-in container runtime in the kubelet code base. It was deprecated in v1.20. As of v1.24, the kubelet will no longer have dockershim. Check out this blog on [what you need to do be ready for v1.24](/blog/2022/03/31/ready-for-dockershim-removal/). | ||
* [Storage capacity tracking for pod scheduling](https://github.com/kubernetes/enhancements/issues/1472): The CSIStorageCapacity API supports exposing currently available storage capacity via CSIStorageCapacity objects and enhances scheduling of pods that use CSI volumes with late binding. In v1.24, the CSIStorageCapacity API will be stable. The API graduating to stable initates the deprecation of the v1beta1 CSIStorageCapacity API. Refer to the [Storage Capacity Constraints for Pod Scheduling KEP](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1472-storage-capacity-tracking) for more information. | ||
* [The `master` label is no longer present on kubeadm control plane nodes](https://github.com/kubernetes/kubernetes/pull/107533). For new clusters, the label 'node-role.kubernetes.io/master' will no longer be added to control plane nodes, only the label 'node-role.kubernetes.io/control-plane' will be added. For more information, refer to [KEP-2067: Rename the kubeadm "master" label and taint](https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/2067-rename-master-label-taint). | ||
* [VolumeSnapshot v1beta1 CRD will be removed](https://github.com/kubernetes/enhancements/issues/177). Volume snapshot and restore functionality for Kubernetes and the [Container Storage Interface](https://github.com/container-storage-interface/spec/blob/master/spec.md) (CSI), which provides standardized APIs design (CRDs) and adds PV snapshot/restore support for CSI volume drivers, entered beta in v1.20. VolumeSnapshot v1beta1 was deprecated in v1.21 and is now unsupported. Refer to [KEP-177: CSI Snapshot](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/177-volume-snapshot#kep-177-csi-snapshot) and [kubernetes-csi/external-snapshotter](https://github.com/kubernetes-csi/external-snapshotter/releases/tag/v4.1.0) for more information. | ||
* [VolumeSnapshot v1beta1 CRD has been removed](https://github.com/kubernetes/enhancements/issues/177). Volume snapshot and restore functionality for Kubernetes and the [Container Storage Interface](https://github.com/container-storage-interface/spec/blob/master/spec.md) (CSI), which provides standardized APIs design (CRDs) and adds PV snapshot/restore support for CSI volume drivers, moved to GA in v1.20. VolumeSnapshot v1beta1 was deprecated in v1.20 and is now unsupported. Refer to [KEP-177: CSI Snapshot](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/177-volume-snapshot#kep-177-csi-snapshot) and [Volume Snapshot GA blog](/blog/2020/12/10/kubernetes-1.20-volume-snapshot-moves-to-ga/) for more information. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This change looks good now. |
||
|
||
## What to do | ||
|
||
### Dockershim removal | ||
|
||
As stated earlier, there are several guides about | ||
[Migrating from dockershim](/docs/tasks/administer-cluster/migrating-from-dockershim/). | ||
As stated earlier, there are several guides about | ||
[Migrating from dockershim](/docs/tasks/administer-cluster/migrating-from-dockershim/). | ||
You can start with [Finding what container runtime are on your nodes](/docs/tasks/administer-cluster/migrating-from-dockershim/find-out-runtime-you-use/). | ||
If your nodes are using dockershim, there are other possible Docker Engine dependencies such as | ||
Pods or third-party tools executing Docker commands or private registries in the Docker configuration file. You can follow the | ||
[Check whether Dockershim deprecation affects you](/docs/tasks/administer-cluster/migrating-from-dockershim/check-if-dockershim-deprecation-affects-you/) guide to review possible | ||
Docker Engine dependencies. Before upgrading to v1.24, you decide to either remain using Docker Engine and | ||
[Migrate Docker Engine nodes from dockershim to cri-dockerd](/docs/tasks/administer-cluster/migrating-from-dockershim/migrate-dockershim-dockerd/) or migrate to a CRI-compatible runtime. Here's a guide to | ||
If your nodes are using dockershim, there are other possible Docker Engine dependencies such as | ||
Pods or third-party tools executing Docker commands or private registries in the Docker configuration file. You can follow the | ||
[Check whether Dockershim deprecation affects you](/docs/tasks/administer-cluster/migrating-from-dockershim/check-if-dockershim-deprecation-affects-you/) guide to review possible | ||
Docker Engine dependencies. Before upgrading to v1.24, you decide to either remain using Docker Engine and | ||
[Migrate Docker Engine nodes from dockershim to cri-dockerd](/docs/tasks/administer-cluster/migrating-from-dockershim/migrate-dockershim-dockerd/) or migrate to a CRI-compatible runtime. Here's a guide to | ||
[change the container runtime on a node from Docker Engine to containerd](/docs/tasks/administer-cluster/migrating-from-dockershim/change-runtime-containerd/). | ||
|
||
### `kubectl convert` | ||
|
||
The [`kubectl convert`](/docs/tasks/tools/included/kubectl-convert-overview/) plugin for `kubectl` | ||
can be helpful to address migrating off deprecated APIs. The plugin facilitates the conversion of | ||
manifests between different API versions, for example, from a deprecated to a non-deprecated API | ||
version. More general information about the API migration process can be found in the [Deprecated API Migration Guide](/docs/reference/using-api/deprecation-guide/). | ||
Follow the [install `kubectl convert` plugin](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/#install-kubectl-convert-plugin) | ||
documentation to download and install the `kubectl-convert` binary. | ||
The [`kubectl convert`](/docs/tasks/tools/included/kubectl-convert-overview/) plugin for `kubectl` | ||
can be helpful to address migrating off deprecated APIs. The plugin facilitates the conversion of | ||
manifests between different API versions, for example, from a deprecated to a non-deprecated API | ||
version. More general information about the API migration process can be found in the [Deprecated API Migration Guide](/docs/reference/using-api/deprecation-guide/). | ||
Follow the [install `kubectl convert` plugin](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/#install-kubectl-convert-plugin) | ||
documentation to download and install the `kubectl-convert` binary. | ||
|
||
### Looking ahead | ||
|
||
The Kubernetes 1.25 and 1.26 releases planned for later this year will stop serving beta versions | ||
of several currently stable Kubernetes APIs. The v1.25 release will also remove PodSecurityPolicy, | ||
which was deprecated with Kubernetes 1.21 and will not graduate to stable. See [PodSecurityPolicy | ||
Deprecation: Past, Present, and Future](/blog/2021/04/06/podsecuritypolicy-deprecation-past-present-and-future/) for more information. | ||
The Kubernetes 1.25 and 1.26 releases planned for later this year will stop serving beta versions | ||
of several currently stable Kubernetes APIs. The v1.25 release will also remove PodSecurityPolicy, | ||
which was deprecated with Kubernetes 1.21 and will not graduate to stable. See [PodSecurityPolicy | ||
Deprecation: Past, Present, and Future](/blog/2021/04/06/podsecuritypolicy-deprecation-past-present-and-future/) for more information. | ||
|
||
The official [list of API removals planned for Kubernetes 1.25](/docs/reference/using-api/deprecation-guide/#v1-25) is: | ||
|
||
|
@@ -115,19 +115,18 @@ The official [list of API removals planned for Kubernetes 1.25](/docs/reference/ | |
* The beta PodSecurityPolicy API (policy/v1beta1) | ||
* The beta RuntimeClass API (node.k8s.io/v1beta1) | ||
|
||
|
||
The official [list of API removals planned for Kubernetes 1.26](/docs/reference/using-api/deprecation-guide/#v1-26) is: | ||
|
||
* The beta FlowSchema and PriorityLevelConfiguration APIs (flowcontrol.apiserver.k8s.io/v1beta1) | ||
* The beta HorizontalPodAutoscaler API (autoscaling/v2beta2) | ||
|
||
|
||
### Want to know more? | ||
|
||
Deprecations are announced in the Kubernetes release notes. You can see the announcements of pending deprecations in the release notes for: | ||
|
||
* [Kubernetes 1.21](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.21.md#deprecation) | ||
* [Kubernetes 1.22](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.22.md#deprecation) | ||
* [Kubernetes 1.23](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.23.md#deprecation) | ||
* We will formally announce the deprecations that come with [Kubernetes 1.24](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.24.md#deprecation) as part of the CHANGELOG for that release. | ||
|
||
For information on the process of deprecation and removal, check out the official Kubernetes [deprecation policy](/docs/reference/using-api/deprecation-policy/#deprecating-parts-of-the-api) document. | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Portworx CSI Migration stayed in Alpha in 1.24 release so the in-tree plugin is not deprecated. Can you remove Portworx as an example?
Actually in 1.24, there were no new CSI driver migration that has reached Beta (a few targeted but didn't make it). So it is also fine to delete line 72.