Skip to content

Commit

Permalink
Apply suggestions from code review
Browse files Browse the repository at this point in the history
Co-authored-by: Tim Bannister <tim@scalefactory.com>
  • Loading branch information
a-mccarthy and sftim committed Jul 18, 2024
1 parent 2b6eaaa commit 7f8fe86
Showing 1 changed file with 29 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ This article outlines some planned changes for the Kubernetes v1.31 release that
The information listed below is based on the current status of the v1.31 release.
It may change before the actual release date.

### The Kubernetes API Removal and Deprecation process
## The Kubernetes API removal and deprecation process
The Kubernetes project has a well-documented [deprecation policy](/docs/reference/using-api/deprecation-policy/) for features.
This policy states that stable APIs may only be deprecated when a newer, stable version of that API is available and that APIs have a minimum lifetime for each stability level.
A deprecated API has been marked for removal in a future Kubernetes release.
Expand All @@ -43,28 +43,33 @@ If you rely on SHA-1 certificates, please start moving off them.

Please see [Kubernetes issue #125689](https://github.com/kubernetes/kubernetes/issues/125689) to get a better idea of timelines around the support for SHA-1 going away, when Kubernetes releases plans to adopt go1.24, and for more details on how to detect usage of SHA-1 certificates via metrics and audit logging.

## Deprecations and Removals in Kubernetes 1.31
## Deprecations and removals in Kubernetes 1.31


### Deprecate Kubelet RunOnce mode [KEP 4580](https://github.com/kubernetes/enhancements/issues/4580)
### Deprecation of kubelet RunOnce mode ([KEP 4580](https://github.com/kubernetes/enhancements/issues/4580))

The kubelet support for RunOnce mode is being deprecated and will be removed in a future release.
Users are advised to deprecate RunOnce mode by disabling the `LegacyNodeRunOnceMode` feature gate.
Starting in Kubernetes v1.31, kubelet will refuse to start if this feature gate is disabled.
The kubelet support for the `--runonce` command line argument is being deprecated in v1.31 and will
be removed in a subsequent release.

If you still rely on this feature, migrate to using the `podman kube` subcommand.
If you still rely on this feature, you could migrate to using the `podman kube` subcommand.
For more information, refer to the [podman documentation](https://docs.podman.io/en/latest/markdown/podman-kube.1.html).

### Deprecate status.nodeInfo.kubeProxyVersion field [KEP 4004](https://github.com/kubernetes/enhancements/issues/4004)
### Deprecation of `status.nodeInfo.kubeProxyVersion` field for Nodes ([KEP 4004](https://github.com/kubernetes/enhancements/issues/4004))

The `status.nodeInfo.kubeProxyVersionv1.Node` field is being deprecated due to inaccuracies and will be removed in a future release.
The `.status.nodeInfo.kubeProxyVersion` field of Nodes is being deprecated in Kubernetes v1.31,
and will be removed in a later release.
It's being deprecated because the value of this field wasn't (and isn't) accurate.
This field is set by the kubelet, which does not have reliable information about the kube-proxy version or whether kube-proxy is running.

After deprecation, users can no longer retrieve the kube-proxy version from the Node object.

### Removal of in-tree cloud providers
### Removal of all in-tree integrations with cloud providers

As highlighted in a [previous article](/blog/2024/05/20/completing-cloud-provider-migration/), the last remaining in-tree support for cloud provider integration will be removed as part of the v1.31 release.
This doesn't mean you can't integrate with a cloud provider, however you now **must** use the
recommended approach using an external integration. Some integrations are part of the Kubernetes
project and others are third party software.

As highlighted in our [previous blog](/blog/2024/05/20/completing-cloud-provider-migration/), the last bits of in-tree cloud provider code have been removed.
This milestone marks the completion of the externalization process for all cloud providers' integrations from the Kubernetes core ([KEP-2395](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cloud-provider/2395-removing-in-tree-cloud-providers/README.md)), a process started with Kubernetes v1.26.
This change helps Kubernetes to get closer to being a truly vendor-neutral platform.

Expand All @@ -76,7 +81,8 @@ The latter blog also contains useful information for users who need to migrate t

### Removal of Kubelet Flag `--keep-terminated-pod-volumes`

The Kubelet flag `--keep-terminated-pod-volumes`, which was deprecated in 2017, has now been removed.
The kubelet flag `--keep-terminated-pod-volumes`, which was deprecated in 2017, will be removed as
part of the v1.31 release.

You can find more details in the pull request [#122082](https://github.com/kubernetes/kubernetes/pull/122082).

Expand All @@ -90,27 +96,28 @@ CephFS volume plugin was formally marked as deprecated in v1.28.

### Removal of Ceph RBD volume plugin

This release removed the [Ceph RBD volume plugin](/docs/concepts/storage/volumes/#rbd) and its CSI migration support, making the `rbd` volume type non-functional.
The v1.31 release will remove the [Ceph RBD volume plugin](/docs/concepts/storage/volumes/#rbd) and its CSI migration support, making the `rbd` volume type non-functional.

It's recommended that you use the [RBD CSI driver](https://github.com/ceph/ceph-csi/) in your clusters instead.
If you were using Ceph RBD volume plugin before upgrading the cluster version to v1.31, you must re-deploy your application to use the new driver.

The CephRBD volume plugin was formally marked as deprecated in v1.28.
The Ceph RBD volume plugin was formally marked as deprecated in v1.28.

### Deprecation of Non-CSI Volume Limit Plugins in Kube-scheduler
### Deprecation of non-CSI volume limit plugins in kube-scheduler

The `kube-scheduler` has deprecated all non-CSI volume limit plugins and removed them from the [default plugins](/docs/reference/scheduling/config/), including:
The v1.31 release will deprecate all non-CSI volume limit scheduler plugins, and will remove some
already deprected plugins from the [default plugins](/docs/reference/scheduling/config/), including:

- AzureDiskLimits
- CinderLimits
- EBSLimits
- GCEPDLimits
- `AzureDiskLimits`
- `CinderLimits`
- `EBSLimits`
- `GCEPDLimits`

It's recommended that you use the `NodeVolumeLimits` plugin instead because it can handle the same functionality as the removed plugins since those volume types have been migrated to CSI.
Please replace the deprecated plugins with the `NodeVolumeLimits` plugin if you explicitly use them in the [scheduler config](/docs/reference/scheduling/config/).
The `AzureDiskLimits`, `CinderLimits`, `EBSLimits`, and `GCEPDLimits` plugins will be removed in Kubernetes v1.32.

These plugins have been removed from the default plugins as they have been marked as deprecated since Kubernetes v1.14.
These plugins will be removed from the default scheduler plugins list as they have been deprecated since Kubernetes v1.14.

## Looking ahead
The official list of API removals planned for [Kubernetes v1.32](/docs/reference/using-api/deprecation-guide/#v1-32) include:
Expand All @@ -119,7 +126,7 @@ The official list of API removals planned for [Kubernetes v1.32](/docs/reference
To prepare for this, you can edit your existing manifests and rewrite client software to use the `flowcontrol.apiserver.k8s.io/v1 API` version, available since v1.29.
All existing persisted objects are accessible via the new API. Notable changes in flowcontrol.apiserver.k8s.io/v1beta3 include that the PriorityLevelConfiguration `spec.limited.nominalConcurrencyShares` field only defaults to 30 when unspecified, and an explicit value of 0 is not changed to 30.

For more information, please refer to [these docs](/docs/reference/using-api/deprecation-guide/#v1-32).
For more information, please refer to the [API deprecation guide](/docs/reference/using-api/deprecation-guide/#v1-32).

## Want to know more?
The Kubernetes release notes announce deprecations.
Expand Down

0 comments on commit 7f8fe86

Please sign in to comment.