/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
| Component | Supported relative to kube-apiserver (N) |
|---|---|
| kubectl | N-1, N, N+1 |
| kubelet | N-3 up to N (never newer than the API server) |
| kube-proxy | N-3 up to N, and within 3 minors of the kubelet on the node |
| kube-controller-manager, kube-scheduler, cloud-controller-manager | N-1 up to N |
| kube-apiserver in an HA cluster | newest and oldest instance within 1 minor |
Check your versions
kubectl version # client and server (needs access to the cluster)
kubectl version --client # client onlyWhen 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
Related pages
cheat sheets · kuberneteskubectl cheat sheet: everyday Kubernetes commandskubectl cheat sheet: contexts and namespaces, get and describe, logs and exec, apply and rollout, port-forward, scaling, and manifests with --dry-run=client.commands · kubernetesGenerate Kubernetes YAML with kubectl create --dry-run=client -o yamlkubectl create deployment, service, configmap or secret with --dry-run=client -o yaml prints a ready manifest without a cluster. Save it with > file.yaml.glossary · kubernetesWhat is a Pod in Kubernetes?A Pod is the smallest deployable unit in Kubernetes: one or more containers that share a network namespace, IP address and volumes, always on the same node.