kubeadm upgrade
kubeadm upgrade
是一个用户友好的命令,它将复杂的升级逻辑包装在一个命令之下,同时支持升级计划和实际执行。
kubeadm 升级指导
使用 kubeadm 执行升级的步骤在此文档中概述。对于旧版本的 kubeadm,请参阅 Kubernetes 网站的旧版文档集。
你可以使用 kubeadm upgrade diff
命令来查看将要应用于静态 Pod Manifest 的变更。
在 Kubernetes v1.15.0 及更高版本中,kubeadm upgrade apply
和 kubeadm upgrade node
也将自动续订此节点上由 kubeadm 管理的证书,包括存储在 kubeconfig 文件中的证书。要选择退出此功能,可以传递 --certificate-renewal=false
标志。有关证书续订的更多详细信息,请参阅证书管理文档。
注意
命令kubeadm upgrade apply
和 kubeadm upgrade plan
有一个传统的 --config
标志,可以在执行特定控制平面节点的规划或升级时重新配置集群。请注意,升级工作流程并非为此场景设计,并且有报告称会产生意外结果。kubeadm upgrade plan
检查可供升级的版本,并验证当前集群是否可升级。
概要
检查可供升级的版本,并验证当前集群是否可升级。此命令只能在存在 kubeconfig 文件 "admin.conf" 的控制平面节点上运行。要跳过互联网检查,请传入可选的 [version] 参数。
kubeadm upgrade plan [version] [flags]
选项
--allow-experimental-upgrades | |
将不稳定的 Kubernetes 版本显示为备选升级目标,并允许升级到 Kubernetes 的 alpha/beta/发布候选版本。 | |
--allow-missing-template-keys 默认值: true | |
如果为 true,则当模板中缺少字段或 map key 时,忽略模板中的任何错误。仅适用于 golang 和 jsonpath 输出格式。 | |
--allow-release-candidate-upgrades | |
将 Kubernetes 的发布候选版本显示为备选升级目标,并允许升级到 Kubernetes 的发布候选版本。 | |
--config string | |
kubeadm 配置文件的路径。 | |
--etcd-upgrade 默认值: true | |
执行 etcd 的升级。 | |
-h, --help | |
plan 命令的帮助信息 | |
--ignore-preflight-errors strings | |
一个列表,其中包含将把其错误作为警告显示的检查项。示例:'IsPrivilegedUser,Swap'。值 'all' 将忽略所有检查项的错误。 | |
--kubeconfig string 默认值: "/etc/kubernetes/admin.conf" | |
与集群通信时使用的 kubeconfig 文件。如果未设置此标志,则将在标准位置集合中搜索现有的 kubeconfig 文件。 | |
-o, --output string 默认值: "text" | |
输出格式。取值范围:text|json|yaml|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file。 | |
--print-config | |
指定是否应该打印将在升级中使用的配置文件。 | |
--show-managed-fields | |
如果为 true,则在以 JSON 或 YAML 格式打印对象时保留 managedFields。 |
从父命令继承的选项
--rootfs string | |
'真实' 主机根文件系统的路径。这将导致 kubeadm chroot 到提供的路径。 |
kubeadm upgrade apply
将 Kubernetes 集群升级到指定版本
概要
将 Kubernetes 集群升级到指定版本
"apply [version]" 命令执行以下阶段
preflight Run preflight checks before upgrade
control-plane Upgrade the control plane
upload-config Upload the kubeadm and kubelet configurations to ConfigMaps
/kubeadm Upload the kubeadm ClusterConfiguration to a ConfigMap
/kubelet Upload the kubelet configuration to a ConfigMap
kubelet-config Upgrade the kubelet configuration for this node
bootstrap-token Configures bootstrap token and cluster-info RBAC rules
addon Upgrade the default kubeadm addons
/coredns Upgrade the CoreDNS addon
/kube-proxy Upgrade the kube-proxy addon
post-upgrade Run post upgrade tasks
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 的升级。 | |
-f, --force | |
即使某些要求可能未满足,也强制升级。这还意味着非交互模式。 | |
-h, --help | |
apply 命令的帮助信息 | |
--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", "corednsdeployment" 中的一个。 "patchtype" 可以是 "strategic", "merge" 或 "json" 中的一种,它们与 kubectl 支持的补丁格式匹配。默认的 "patchtype" 是 "strategic"。 "extension" 必须是 "json" 或 "yaml"。 "suffix" 是一个可选字符串,可用于确定哪些补丁按字母数字顺序优先应用。 | |
--print-config | |
指定是否应该打印将在升级中使用的配置文件。 | |
--skip-phases strings | |
要跳过的阶段列表 | |
-y, --yes | |
执行升级且不提示确认(非交互模式)。 |
从父命令继承的选项
--rootfs string | |
'真实' 主机根文件系统的路径。这将导致 kubeadm chroot 到提供的路径。 |
kubeadm upgrade diff
显示将应用于现有静态 Pod Manifest 的差异。另请参阅:kubeadm upgrade apply --dry-run
概要
显示将应用于现有静态 Pod Manifest 的差异。另请参阅:kubeadm upgrade apply --dry-run
kubeadm upgrade diff [version] [flags]
选项
--config string | |
kubeadm 配置文件的路径。 | |
-c, --context-lines int 默认值: 3 | |
差异中的上下文行数 | |
-h, --help | |
diff 命令的帮助信息 | |
--kubeconfig string 默认值: "/etc/kubernetes/admin.conf" | |
与集群通信时使用的 kubeconfig 文件。如果未设置此标志,则将在标准位置集合中搜索现有的 kubeconfig 文件。 |
从父命令继承的选项
--rootfs string | |
'真实' 主机根文件系统的路径。这将导致 kubeadm chroot 到提供的路径。 |
kubeadm upgrade node
集群中节点的升级命令
概要
集群中节点的升级命令
"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
addon Upgrade the default kubeadm addons
/coredns Upgrade the CoreDNS addon
/kube-proxy Upgrade the kube-proxy addon
post-upgrade Run post upgrade tasks
kubeadm upgrade node [flags]
选项
--certificate-renewal 默认值: true | |
执行升级期间组件使用的证书的续订。 | |
--config string | |
kubeadm 配置文件的路径。 | |
--dry-run | |
不改变任何状态,只输出将要执行的操作。 | |
--etcd-upgrade 默认值: true | |
执行 etcd 的升级。 | |
-h, --help | |
node 命令的帮助信息 | |
--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", "corednsdeployment" 中的一个。 "patchtype" 可以是 "strategic", "merge" 或 "json" 中的一种,它们与 kubectl 支持的补丁格式匹配。默认的 "patchtype" 是 "strategic"。 "extension" 必须是 "json" 或 "yaml"。 "suffix" 是一个可选字符串,可用于确定哪些补丁按字母数字顺序优先应用。 | |
--skip-phases strings | |
要跳过的阶段列表 |
从父命令继承的选项
--rootfs string | |
'真实' 主机根文件系统的路径。这将导致 kubeadm chroot 到提供的路径。 |
接下来
- kubeadm config,如果你使用 kubeadm v1.7.x 或更低版本初始化了集群,可以使用此命令配置集群以便进行
kubeadm upgrade