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

Update Skew Docs to Fix Compatible Issues between Controller Clients and the API-Server #46109

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions content/en/releases/version-skew-policy.md
Original file line number Diff line number Diff line change
Expand Up @@ -239,3 +239,13 @@ or **{{< skew currentVersionAddMinor -3 >}}**)
Running a cluster with `kube-proxy` instances that are persistently three minor versions behind
`kube-apiserver` means they must be upgraded before the control plane can be upgraded.
{{</ warning >}}

## Controller clients and kube-apiserver upgrades
network-charles marked this conversation as resolved.
Show resolved Hide resolved

Controller clients external to the kube-apiserver, such as kubelet, kube-controller-manager, and kube-scheduler, as well as aggregated API servers, must not have a higher version than the kube-apiserver they interact with to ensure compatibility and consistency within the cluster.
network-charles marked this conversation as resolved.
Show resolved Hide resolved

When the kube-apiserver is upgraded to a new version, it might introduce changes to its APIs. However, to avoid disrupting critical operations, especially those related to admission control and flow control, the kube-apiserver is designed to be able to understand and communicate using the API versions from the previous release (-1, -2, or -3 versions).

So, even if the kube-apiserver itself is upgraded to a newer version, it can still communicate with its components or modules that may not have been upgraded yet, ensuring that these essential functionalities continue to work without interruption. This capability helps in maintaining the stability and reliability of the Kubernetes cluster during upgrades.

Administrators must coordinate the upgrades of controller clients with the kube-apiserver upgrades to ensure that all components remain compatible and operational within the cluster ecosystem.