kubeadm upgrade
is a user-friendly command that wraps complex upgrading logic behind one command, with support
for both planning an upgrade and actually performing it. kubeadm upgrade
can also be used for downgrading
cluster if necessary.
Every upgrade process might be a bit different, so we’ve documented each minor upgrade process individually. For more version-specific upgrade guidance, see the following resources:
In Kubernetes v1.11.0 and later, you can use kubeadm upgrade diff
to see the changes that would be
applied to static pod manifests.
Check which versions are available to upgrade to and validate whether your current cluster is upgradeable. To skip the internet check, pass in the optional [version] parameter.
Check which versions are available to upgrade to and validate whether your current cluster is upgradeable. To skip the internet check, pass in the optional [version] parameter.
kubeadm upgrade plan [version] [flags]
-h, --help | |
help for plan |
--allow-experimental-upgrades | |
Show unstable versions of Kubernetes as an upgrade alternative and allow upgrading to an alpha/beta/release candidate versions of Kubernetes. | |
--allow-release-candidate-upgrades | |
Show release candidate versions of Kubernetes as an upgrade alternative and allow upgrading to a release candidate versions of Kubernetes. | |
--config string | |
Path to kubeadm config file. WARNING: Usage of a configuration file is experimental! | |
--feature-gates string | |
A set of key=value pairs that describe feature gates for various features.Options are: Auditing=true|false (ALPHA - default=false) CoreDNS=true|false (default=true) DynamicKubeletConfig=true|false (ALPHA - default=false) SelfHosting=true|false (ALPHA - default=false) StoreCertsInSecrets=true|false (ALPHA - default=false) |
|
--ignore-preflight-errors stringSlice | |
A list of checks whose errors will be shown as warnings. Example: 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks. | |
--kubeconfig string Default: "/etc/kubernetes/admin.conf" | |
The KubeConfig file to use when talking to the cluster. | |
--print-config | |
Specifies whether the configuration file that will be used in the upgrade should be printed or not. |
Upgrade your Kubernetes cluster to the specified version.
Upgrade your Kubernetes cluster to the specified version.
kubeadm upgrade apply [version]
--dry-run | |
Do not change any state, just output what actions would be performed. | |
--etcd-upgrade Default: true | |
Perform the upgrade of etcd. | |
-f, --force | |
Force upgrading although some requirements might not be met. This also implies non-interactive mode. | |
-h, --help | |
help for apply | |
--image-pull-timeout duration Default: 15m0s | |
The maximum amount of time to wait for the control plane pods to be downloaded. | |
-y, --yes | |
Perform the upgrade and do not prompt for confirmation (non-interactive mode). |
--allow-experimental-upgrades | |
Show unstable versions of Kubernetes as an upgrade alternative and allow upgrading to an alpha/beta/release candidate versions of Kubernetes. | |
--allow-release-candidate-upgrades | |
Show release candidate versions of Kubernetes as an upgrade alternative and allow upgrading to a release candidate versions of Kubernetes. | |
--config string | |
Path to kubeadm config file. WARNING: Usage of a configuration file is experimental! | |
--feature-gates string | |
A set of key=value pairs that describe feature gates for various features.Options are: Auditing=true|false (ALPHA - default=false) CoreDNS=true|false (default=true) DynamicKubeletConfig=true|false (ALPHA - default=false) SelfHosting=true|false (ALPHA - default=false) StoreCertsInSecrets=true|false (ALPHA - default=false) |
|
--ignore-preflight-errors stringSlice | |
A list of checks whose errors will be shown as warnings. Example: 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks. | |
--kubeconfig string Default: "/etc/kubernetes/admin.conf" | |
The KubeConfig file to use when talking to the cluster. | |
--print-config | |
Specifies whether the configuration file that will be used in the upgrade should be printed or not. |
Show what differences would be applied to existing static pod manifests. See also: kubeadm upgrade apply –dry-run
Show what differences would be applied to existing static pod manifests. See also: kubeadm upgrade apply –dry-run
kubeadm upgrade diff [version] [flags]
--api-server-manifest string Default: "/etc/kubernetes/manifests/kube-apiserver.yaml" | |
path to API server manifest | |
-c, --context-lines int Default: 3 | |
How many lines of context in the diff | |
--controller-manager-manifest string Default: "/etc/kubernetes/manifests/kube-controller-manager.yaml" | |
path to controller manifest | |
-h, --help | |
help for diff | |
--scheduler-manifest string Default: "/etc/kubernetes/manifests/kube-scheduler.yaml" | |
path to scheduler manifest |
--allow-experimental-upgrades | |
Show unstable versions of Kubernetes as an upgrade alternative and allow upgrading to an alpha/beta/release candidate versions of Kubernetes. | |
--allow-release-candidate-upgrades | |
Show release candidate versions of Kubernetes as an upgrade alternative and allow upgrading to a release candidate versions of Kubernetes. | |
--config string | |
Path to kubeadm config file. WARNING: Usage of a configuration file is experimental! | |
--feature-gates string | |
A set of key=value pairs that describe feature gates for various features.Options are: Auditing=true|false (ALPHA - default=false) CoreDNS=true|false (default=true) DynamicKubeletConfig=true|false (ALPHA - default=false) SelfHosting=true|false (ALPHA - default=false) StoreCertsInSecrets=true|false (ALPHA - default=false) |
|
--ignore-preflight-errors stringSlice | |
A list of checks whose errors will be shown as warnings. Example: 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks. | |
--kubeconfig string Default: "/etc/kubernetes/admin.conf" | |
The KubeConfig file to use when talking to the cluster. | |
--print-config | |
Specifies whether the configuration file that will be used in the upgrade should be printed or not. |
Downloads the kubelet configuration from the cluster ConfigMap kubelet-config-1.X, where X is the minor version of the kubelet.
Downloads the kubelet configuration from a ConfigMap of the form “kubelet-config-1.X” in the cluster, where X is the minor version of the kubelet. kubeadm uses the –kubelet-version parameter to determine what the desired kubelet version is. Give
kubeadm upgrade node config [flags]
# Downloads the kubelet configuration from the ConfigMap in the cluster. Uses a specific desired kubelet version.
kubeadm upgrade node config --kubelet-version v1.11.0
# Simulates the downloading of the kubelet configuration from the ConfigMap in the cluster with a specific desired
# version. Does not change any state locally on the node.
kubeadm upgrade node config --kubelet-version v1.11.0 --dry-run
--dry-run | |
Do not change any state, just output the actions that would be performed. | |
-h, --help | |
help for config | |
--kubelet-version string | |
The *desired* version for the kubelet after the upgrade. |
--allow-experimental-upgrades | |
Show unstable versions of Kubernetes as an upgrade alternative and allow upgrading to an alpha/beta/release candidate versions of Kubernetes. | |
--allow-release-candidate-upgrades | |
Show release candidate versions of Kubernetes as an upgrade alternative and allow upgrading to a release candidate versions of Kubernetes. | |
--config string | |
Path to kubeadm config file. WARNING: Usage of a configuration file is experimental! | |
--feature-gates string | |
A set of key=value pairs that describe feature gates for various features.Options are: Auditing=true|false (ALPHA - default=false) CoreDNS=true|false (default=true) DynamicKubeletConfig=true|false (ALPHA - default=false) SelfHosting=true|false (ALPHA - default=false) StoreCertsInSecrets=true|false (ALPHA - default=false) |
|
--ignore-preflight-errors stringSlice | |
A list of checks whose errors will be shown as warnings. Example: 'IsPrivilegedUser,Swap'. Value 'all' ignores errors from all checks. | |
--kubeconfig string Default: "/etc/kubernetes/admin.conf" | |
The KubeConfig file to use when talking to the cluster. | |
--print-config | |
Specifies whether the configuration file that will be used in the upgrade should be printed or not. |
kubeadm upgrade