kubeadm upgrade

kubeadm upgrade 是一个用户友好的命令,它将复杂的升级逻辑封装在一个命令后面,支持规划升级和实际执行升级。

kubeadm 升级指南

使用 kubeadm 执行升级的步骤在 此文档 中概述。对于旧版本的 kubeadm,请参阅 Kubernetes 网站的旧文档集。

您可以使用 kubeadm upgrade diff 查看将应用于静态 Pod 清单的更改。

在 Kubernetes v1.15.0 及更高版本中,kubeadm upgrade applykubeadm upgrade node 还会自动续订此节点上由 kubeadm 管理的证书,包括存储在 kubeconfig 文件中的证书。要选择退出,可以传递标志 --certificate-renewal=false。有关证书续订的更多详细信息,请参阅 证书管理文档

kubeadm 升级计划

检查哪些版本可供升级,并验证当前集群是否可升级。

概要

检查哪些版本可供升级,并验证当前集群是否可升级。此命令只能在控制平面节点上运行,这些节点存在 kubeconfig 文件“admin.conf”。要跳过 Internet 检查,请传入可选的 [version] 参数。

kubeadm upgrade plan [version] [flags]

选项

--allow-experimental-upgrades

将 Kubernetes 的不稳定版本显示为升级替代方案,并允许升级到 Kubernetes 的 alpha/beta/候选版本。

--allow-missing-template-keys     默认值:true

如果为 true,则在模板中缺少字段或映射键时忽略模板中的任何错误。仅适用于 golang 和 jsonpath 输出格式。

--allow-release-candidate-upgrades

将 Kubernetes 的候选版本显示为升级替代方案,并允许升级到 Kubernetes 的候选版本。

--config string

kubeadm 配置文件的路径。

-o, --experimental-output string     默认值: "text"

输出格式。以下之一:text|json|yaml|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file。

--feature-gates string

一组描述各种功能的特征门的键值对。选项是
EtcdLearnerMode=true|false (BETA - 默认值=true)
PublicKeysECDSA=true|false (已弃用 - 默认值=false)
RootlessControlPlane=true|false (ALPHA - 默认值=false)
UpgradeAddonsBeforeControlPlane=true|false (已弃用 - 默认值=false)
WaitForAllControlPlaneComponents=true|false (ALPHA - 默认值=false)

-h, --help

计划的帮助信息

--ignore-preflight-errors strings

其错误将显示为警告的检查列表。例如:'IsPrivilegedUser,Swap'。值“all”忽略来自所有检查的错误。

--kubeconfig string     默认值: "/etc/kubernetes/admin.conf"

与集群通信时要使用的 kubeconfig 文件。如果未设置标志,则可以搜索一组标准位置以查找现有 kubeconfig 文件。

--print-config

指定是否应打印将在升级中使用的配置文件。

--show-managed-fields

如果为 true,则在以 JSON 或 YAML 格式打印对象时保留 managedFields。

从父命令继承的选项

--rootfs string

[实验性] 指向“真实”主机根文件系统的路径。

kubeadm 升级应用

将 Kubernetes 集群升级到指定版本

概要

将 Kubernetes 集群升级到指定版本

kubeadm upgrade apply [version]

选项

--allow-experimental-upgrades

将 Kubernetes 的不稳定版本显示为升级替代方案,并允许升级到 Kubernetes 的 alpha/beta/候选版本。

--allow-release-candidate-upgrades

将 Kubernetes 的候选版本显示为升级替代方案,并允许升级到 Kubernetes 的候选版本。

--certificate-renewal     默认值:true

执行对升级期间更改的组件使用的证书的续订。

--config string

kubeadm 配置文件的路径。

--dry-run

不更改任何状态,只输出将执行的操作。

--etcd-upgrade     默认值:true

执行 etcd 的升级。

--feature-gates string

一组描述各种功能的特征门的键值对。选项是
EtcdLearnerMode=true|false (BETA - 默认值=true)
PublicKeysECDSA=true|false (已弃用 - 默认值=false)
RootlessControlPlane=true|false (ALPHA - 默认值=false)
UpgradeAddonsBeforeControlPlane=true|false (已弃用 - 默认值=false)
WaitForAllControlPlaneComponents=true|false (ALPHA - 默认值=false)

-f, --force

即使某些要求可能未满足,也要强制升级。这也意味着非交互模式。

-h, --help

应用的帮助信息

--ignore-preflight-errors strings

其错误将显示为警告的检查列表。例如:'IsPrivilegedUser,Swap'。值“all”忽略来自所有检查的错误。

--kubeconfig string     默认值: "/etc/kubernetes/admin.conf"

与集群通信时要使用的 kubeconfig 文件。如果未设置标志,则可以搜索一组标准位置以查找现有 kubeconfig 文件。

--patches string

指向包含名为“target[suffix][+patchtype].extension”的文件的目录的路径。例如,“kube-apiserver0+merge.yaml”或仅“etcd.json”。“target”可以是以下之一:“kube-apiserver”、“kube-controller-manager”、“kube-scheduler”、“etcd”、“kubeletconfiguration”。“patchtype”可以是以下之一:“strategic”、“merge”或“json”,它们与 kubectl 支持的补丁格式相匹配。默认的“patchtype”是“strategic”。“extension”必须是“json”或“yaml”。“suffix”是一个可选字符串,可用于确定按字母顺序优先应用哪些补丁。

--print-config

指定是否应打印将在升级中使用的配置文件。

-y, --yes

执行升级,不提示确认(非交互模式)。

从父命令继承的选项

--rootfs string

[实验性] 指向“真实”主机根文件系统的路径。

kubeadm 升级 diff

显示将应用于现有静态 Pod 清单的差异。另请参阅:kubeadm upgrade apply --dry-run

概要

显示将应用于现有静态 Pod 清单的差异。另请参阅:kubeadm upgrade apply --dry-run

kubeadm upgrade diff [version] [flags]

选项

--api-server-manifest string     默认值: "/etc/kubernetes/manifests/kube-apiserver.yaml"

API 服务器清单的路径

--config string

kubeadm 配置文件的路径。

-c, --context-lines int     默认值:3

diff 中的上下文行数

--controller-manager-manifest string     默认值: "/etc/kubernetes/manifests/kube-controller-manager.yaml"

控制器清单的路径

-h, --help

diff 的帮助信息

--kubeconfig string     默认值: "/etc/kubernetes/admin.conf"

与集群通信时要使用的 kubeconfig 文件。如果未设置标志,则可以搜索一组标准位置以查找现有 kubeconfig 文件。

--scheduler-manifest string     默认值: "/etc/kubernetes/manifests/kube-scheduler.yaml"

调度程序清单的路径

从父命令继承的选项

--rootfs string

[实验性] 指向“真实”主机根文件系统的路径。

kubeadm 升级节点

集群中节点的升级命令

概要

集群中节点的升级命令

“node”命令执行以下阶段

preflight       Run upgrade node pre-flight checks
control-plane   Upgrade the control plane instance deployed on this node, if any
kubelet-config  Upgrade the kubelet configuration for this node
kubeadm upgrade node [flags]

选项

--certificate-renewal     默认值:true

执行对升级期间更改的组件使用的证书的续订。

--config string

kubeadm 配置文件的路径。

--dry-run

不更改任何状态,只输出将执行的操作。

--etcd-upgrade     默认值:true

执行 etcd 的升级。

-h, --help

节点的帮助信息

--ignore-preflight-errors strings

其错误将显示为警告的检查列表。例如:'IsPrivilegedUser,Swap'。值“all”忽略来自所有检查的错误。

--kubeconfig string     默认值: "/etc/kubernetes/admin.conf"

与集群通信时要使用的 kubeconfig 文件。如果未设置标志,则可以搜索一组标准位置以查找现有 kubeconfig 文件。

--patches string

指向包含名为“target[suffix][+patchtype].extension”的文件的目录的路径。例如,“kube-apiserver0+merge.yaml”或仅“etcd.json”。“target”可以是以下之一:“kube-apiserver”、“kube-controller-manager”、“kube-scheduler”、“etcd”、“kubeletconfiguration”。“patchtype”可以是以下之一:“strategic”、“merge”或“json”,它们与 kubectl 支持的补丁格式相匹配。默认的“patchtype”是“strategic”。“extension”必须是“json”或“yaml”。“suffix”是一个可选字符串,可用于确定按字母顺序优先应用哪些补丁。

--skip-phases strings

要跳过的阶段列表

从父命令继承的选项

--rootfs string

[实验性] 指向“真实”主机根文件系统的路径。

下一步

  • kubeadm config 如果您使用 kubeadm v1.7.x 或更低版本初始化了集群,则为 kubeadm upgrade 配置集群
上次修改于 2021 年 10 月 15 日下午 3:07 PST:修复了一个拼写错误 (cbd7a7ab74)