Skip to content

/compat/kubernetes/kubectl-version-skew

kubectl version skew: which kubectl works with which cluster

The commands on this page have not been executed by our verification runner yet.updated 2026-10-20
tool
Kubernetes
versions
Kubernetes 1.x
os
any

The Kubernetes version skew policy says kubectl is supported within one minor version, older or newer, of the kube-apiserver. With an API server at 1.37, kubectl 1.36, 1.37 and 1.38 are supported. Outside that window most commands still work, but behaviour is not guaranteed.

Skew rules by component

ComponentSupported relative to kube-apiserver (N)
kubectlN-1, N, N+1
kubeletN-3 up to N (never newer than the API server)
kube-proxyN-3 up to N, and within 3 minors of the kubelet on the node
kube-controller-manager, kube-scheduler, cloud-controller-managerN-1 up to N
kube-apiserver in an HA clusternewest and oldest instance within 1 minor

Check your versions

bash
kubectl version            # client and server (needs access to the cluster)
kubectl version --client   # client only

When the skew is too large, kubectl version prints a warning that the client and server versions differ by more than the supported minor version skew.

Upgrade order

Upgrade the control plane first (API server, then controller manager and scheduler), then the nodes (kubelet, kube-proxy), and keep kubectl within one minor of the API server throughout. Minor versions cannot be skipped when upgrading the control plane: go 1.36 → 1.37 → 1.38.

Sources