Skip to content
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

Add Kubernetes 1.24 Removals and Deprecations blog post #31767

Merged
merged 4 commits into from Apr 6, 2022
Merged

Add Kubernetes 1.24 Removals and Deprecations blog post #31767

merged 4 commits into from Apr 6, 2022

Conversation

mickeyboxell
Copy link
Contributor

@mickeyboxell mickeyboxell commented Feb 16, 2022

Creating Kubernetes 1.24 Deprecations and Removals blog post placeholder.

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Feb 16, 2022
@k8s-ci-robot k8s-ci-robot added area/blog Issues or PRs related to the Kubernetes Blog subproject language/en Issues or PRs related to English language sig/docs Categorizes an issue or PR as relevant to SIG Docs. labels Feb 16, 2022
@netlify
Copy link

netlify bot commented Feb 16, 2022

Deploy Preview for kubernetes-io-main-staging ready!

Name Link
🔨 Latest commit 76855d8
🔍 Latest deploy log https://app.netlify.com/sites/kubernetes-io-main-staging/deploys/624e03a85a7c560009687960
😎 Deploy Preview https://deploy-preview-31767--kubernetes-io-main-staging.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

@nate-double-u
Copy link
Contributor

/milestone 1.24

@k8s-ci-robot k8s-ci-robot added this to the 1.24 milestone Feb 16, 2022
@nate-double-u nate-double-u added this to PRs in Flight in Docs - Dockershim Removal Feb 16, 2022
@sftim
Copy link
Contributor

sftim commented Feb 17, 2022

/retitle [WIP] Add Kubernetes 1.24 Deprecations and Removals blog post

@k8s-ci-robot k8s-ci-robot changed the title Creating Kubernetes 1.24 Deprecations and Removals blog post placeholder [WIP] Add Kubernetes 1.24 Deprecations and Removals blog post Feb 17, 2022
@k8s-ci-robot k8s-ci-robot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Feb 17, 2022
@sftim sftim added this to Ready for review in Blog articles via automation Feb 17, 2022
@sftim sftim moved this from Ready for review to Requires update in Blog articles Feb 17, 2022
@sftim
Copy link
Contributor

sftim commented Feb 22, 2022

One thing to cover:
The switch from node-role.kubernetes.io/master to node-role.kubernetes.io/control-plane (these annotations are widely used but aren't yet properly documented)

I think v1.24 might be the first release to deprecate node-role.kubernetes.io/master annotations, but I'm not sure.

@mickeyboxell mickeyboxell changed the title [WIP] Add Kubernetes 1.24 Deprecations and Removals blog post [WIP] Add Kubernetes 1.24 Removals and Deprecations blog post Mar 24, 2022
@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Mar 24, 2022
Copy link
Contributor

@sftim sftim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here's some early (and, I'm afraid, rather thorough) feedback. I do hope it's useful.

Copy link
Contributor

@chris-short chris-short left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall a great job. A nit, a bring this thing up in the doc, and a hyphen.

@mickeyboxell
Copy link
Contributor Author

@sftim I saw your comment #31767 (comment). Is that something we should add to this blog? If so, could you help me with what needs to be said?

@sftim
Copy link
Contributor

sftim commented Mar 28, 2022

I'll ask SIG Cluster Lifecycle to confirm.

@sftim
Copy link
Contributor

sftim commented Mar 28, 2022

/label tide/merge-method-squash

A local squash is better if you get the chance to do so, @mickeyboxell

@k8s-ci-robot k8s-ci-robot added the tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges. label Mar 28, 2022
@mickeyboxell
Copy link
Contributor Author

@sftim Since you have been active in providing feedback on this doc, would you mind giving this another review at your convenience? I expect I will need to make a handful of changes based on exceptions that may come out of today's change freeze. @chris-short is there a style guide I need to follow? For example, I'm curious about whether I should say "v1.24" or "1.24".

@sftim
Copy link
Contributor

sftim commented Mar 30, 2022

I'll have a look if I get a chance. Don't worry about nits like v1.24 vs 1.24 (we can fix those up post-merge, or even post-publication) - the key thing is to get the overall article right.

I did spot another thing we might want to cover, see #32648.

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Apr 5, 2022
Copy link
Contributor

@chrisnegus chrisnegus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is really well written. I only had a few small suggestions.

@k8s-ci-robot k8s-ci-robot added the do-not-merge/invalid-commit-message Indicates that a PR should not merge because it has an invalid commit message. label Apr 5, 2022
@reylejano
Copy link
Member

@mickeyboxell , can you change the commit message for commit 641fa41, can't use # or @ in the message

@sftim
Copy link
Contributor

sftim commented Apr 6, 2022

A late entrant: #32765

I'd tweak the wording around CSIStorageCapacity.
(@mickeyboxell I will also give this PR a longer review)

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/invalid-commit-message Indicates that a PR should not merge because it has an invalid commit message. label Apr 6, 2022
@mickeyboxell
Copy link
Contributor Author

@sftim let me know what you had in mind for this: #31767 (comment). Aside from that, I have made all of the proposed changes. I would like to see this ship tomorrow if possible.

…2-04-07-Kubernetes-1-24-removals-and-deprecations.md

File rename
@sftim sftim dismissed their stale review April 6, 2022 21:24

Previous review was stale

@reylejano
Copy link
Member

Hi blog owners and reviewers @sftim , @onlydole , @mrbobbytables , @nate-double-u
All the comments have been addressed and this blog looks like it's ready to merge for publication tomorrow, April 7
Is this ready to merge?

/lgtm

@k8s-ci-robot
Copy link
Contributor

LGTM label has been added.

Git tree hash: 206fff63d89cd1a5ae9bd742008203d9674cee48

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Apr 6, 2022
@sftim
Copy link
Contributor

sftim commented Apr 6, 2022

I have no specific thoughts on how to incorporate the changes relating to #31767 (comment)

If we merge this, we can update after the fact (even after publication).

@sftim
Copy link
Contributor

sftim commented Apr 6, 2022

I'm concerned this article doesn't show in the preview. I'm previewing this locally and will see how it looks there.

Copy link
Contributor

@sftim sftim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for working on this @mickeyboxell

Overall, my concerns are:

  • the “what to do” section has no advice about the dockershim removal
    • readers might skip there and then feel short-changed
  • linking to KEPs provides context, but I think for non-contributors perhaps too much context. An article like this should be able to be read as a piece of standalone writing and not rely on folks following links.
  • if we link to the dockershim KEP, does that unintentionally imply that the KEP is the place for discussion feedback?

Overall, the question in my mind comes down to: is it better to delay the article more in pursuit of some extra refinement, or should we ship it?

The message in this article is worth saying more than it's worth not saying. Let's say it.

/approve


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/issues/2221). This is discussed
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm minded to link elsewhere. This link would be an invitation for folks who want to comment to do so on the KEP, which may not be the outcome we want.

This could happen after the article merges.

Comment on lines +67 to +73
* [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. As of v1.24, the feature gate was 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 was 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, dockershim has been removed from kubelet. 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. The CSIStorageCapacity API is stable as of v1.24. The v1beta1 CSIStorageCapacity API is deprecated in v1.24. 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 in v1.24](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.
Copy link
Contributor

@sftim sftim Apr 6, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parts of this text uses the wrong grammatical tense. Instead of “was” and “has been”, we should use a tense that is appropriate for describing upcoming changes.

I am concerned that this is wrong enough that people will file issues reporting it.

I would list the dockershim removal first in the list.

A nit, “VolumeSnapshot v1beta1 CRD will be removed in v1.24” could be shortened to “VolumeSnapshot v1beta1 CRD will be removed”

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, this feels too long (I think many readers will skim it). I'd prefer to tell people to watch out for the release notes for the full detail of a particular removal.

Comment on lines +77 to +84
### `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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The main removal is dockershim, and yet the “what to do” section makes no mention. To me that feels odd.

Comment on lines +10 to +12
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. Old APIs are first deprecated and then removed according to the [Kubernetes Deprecation Policy](/docs/reference/using-api/deprecation-policy/).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd skip this intro; there's no API removal in v1.24

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: sftim

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 6, 2022
@k8s-ci-robot k8s-ci-robot merged commit f71cba2 into kubernetes:main Apr 6, 2022
Blog articles automation moved this from Requires update to Scheduled Apr 6, 2022
Docs - Dockershim Removal automation moved this from PRs in Flight (Needs Review) to Done Apr 6, 2022
@mickeyboxell
Copy link
Contributor Author

@sftim the points you made above make sense to me. If you have bandwidth, would you be interested in co-authoring this with me and making it into the post you envisioned? I will leave it up to the discretion of the other folks on this thread regarding whether to ship now and iterate or hold off on shipping. I would like to release the most helpful possible for the K8s community. Assuming we plan to continue these posts in future releases, I would advocate for the creation of a guide describing the expectations for removals blogs.

@reylejano
Copy link
Member

@mickeyboxell @sftim
Created a follow-up PR to address some of the points
#32786

@sftim sftim moved this from Scheduled to Published in Blog articles Apr 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. area/blog Issues or PRs related to the Kubernetes Blog subproject cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. language/en Issues or PRs related to English language lgtm "Looks good to me", indicates that a PR is ready to be merged. sig/docs Categorizes an issue or PR as relevant to SIG Docs. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. tide/merge-method-squash Denotes a PR that should be squashed by tide when it merges.
Projects
Archived in project
Blog articles
Published
Development

Successfully merging this pull request may close these issues.

None yet