kubeadm upgrade

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

kubeadm upgrade 指南

本文档概述 使用 kubeadm 执行升级的步骤。 与 kubeadm 旧版本相关的文档,请参阅 Kubernetes 网站的旧版文档。

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

在 Kubernetes v1.15.0 和更高版本中,kubeadm upgrade applykubeadm upgrade node 也将自动续订该节点上的 kubeadm 托管证书,包括存储在 kubeconfig 文件中的证书。 要选择退出,可以传递参数 --certificate-renewal=false。 有关证书续订的更多详细信息请参见证书管理文档

说明:

kubeadm upgrade applykubeadm upgrade plan 命令都具有遗留的 --config 标志, 可以在执行特定控制平面节点的规划或升级时重新配置集群。 请注意,升级工作流不是为这种情况而设计的,并且有意外结果的报告。

kubeadm upgrade plan

概述

检查可升级到哪些版本,并验证你当前的集群是否可升级。 要跳过互联网检查,请传递可选的 [version] 参数

  1. kubeadm upgrade plan [version] [flags]

选项

—allow-experimental-upgrades

显示不稳定版本的 Kubernetes 作为升级替代方案,并允许升级到 Kubernetes 的 Alpha/Beta/发行候选版本。

—allow-release-candidate-upgrades

显示 Kubernetes 的发行候选版本作为升级选择,并允许升级到 Kubernetes 的发行候选版本。

—config string

配置文件的路径。

—feature-gates string

一组描述各种特征特性门控的键值对。选项有:
PublicKeysECDSA=true|false (ALPHA - 默认值=false)
RootlessControlPlane=true|false (ALPHA - 默认值=false)
UnversionedKubeletConfigMap=true|false (BETA - 默认值=true)

-h, —help

plan 的帮助信息

—ignore-preflight-errors strings

其错误将显示为警告的检查列表。 例如:’IsPrivilegedUser,Swap’。 值 ‘all’ 忽略所有检查错误。

—kubeconfig string     默认值:”/etc/kubernetes/admin.conf”

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

—print-config

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

从父命令继承的选项

—rootfs string

[EXPERIMENTAL] “真实”主机根文件系统的路径。

kubeadm upgrade apply

将 Kubernetes 集群升级到指定版本

概要

将 Kubernetes 集群升级到指定版本

  1. kubeadm upgrade apply [version]

选项

—allow-experimental-upgrades

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

—allow-release-candidate-upgrades

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

—certificate-renewal     Default: true

执行升级期间更改的组件所使用的证书的更新。

—config string

kubeadm 配置文件的路径。

—dry-run

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

—etcd-upgrade     默认值: true

执行 etcd 的升级。

—feature-gates string

一组键值对,用于描述各种功能。选项包括:
PublicKeysECDSA=true|false (ALPHA - 默认值=false
RootlessControlPlane=true|false (ALPHA - 默认值=false)
UnversionedKubeletConfigMap=true|false (BETA - 默认值=true)

-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” 之一。 “patchtype” 可以是 “strategic”、”merge” 或者 “json” 之一, 并且它们与 kubectl 支持的补丁格式相同。 默认的 “patchtype” 是 “strategic”。 “extension” 必须是”json” 或”yaml”。 “suffix” 是一个可选字符串,可用于确定首先按字母顺序应用哪些补丁。

—print-config

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

-y, —yes

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

从父命令继承的选项

—rootfs string

[实验] 指向 ‘真实’ 宿主机根文件系统的路径。

kubeadm upgrade diff

显示哪些差异将被应用于现有的静态 pod 资源清单。参考: kubeadm upgrade apply —dry-run

概述

显示哪些差异将被应用于现有的静态 pod 资源清单。参考: kubeadm upgrade apply —dry-run

  1. kubeadm upgrade diff [version] [flags]

选项

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

API服务器清单的路径

—config string

kubeadm 配置文件的路径

-c, —context-lines int     默认值:3
差异中有多少行上下文
—controller-manager-manifest string     默认值: “/etc/kubernetes/manifests/kube-controller-manager.yaml”

控制器清单的路径

-h, —help

帮助

—kubeconfig string     默认值:”/etc/kubernetes/admin.conf”

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

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

调度程序清单的路径

从父命令继承的选项

—rootfs string

[EXPERIMENTAL] “真实”主机根文件系统的路径。

kubeadm upgrade node

升级集群中某个节点的命令

概要

升级集群中某个节点的命令

“node” 命令执行以下阶段:

  1. preflight 执行节点升级前检查
  2. control-plane 如果存在的话,升级部署在该节点上的管理面实例
  3. kubelet-config 更新该节点上的 kubelet 配置
  1. kubeadm upgrade node [flags]

选项

—certificate-renewal     默认值: true

对升级期间变化的组件所使用的证书执行更新。

—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” 之一。 “patchtype” 可以是 “strategic”、”merge” 或者 “json” 之一, 并且它们与 kubectl 支持的补丁格式相同。 默认的 “patchtype” 是 “strategic”。 “extension” 必须是”json” 或”yaml”。 “suffix” 是一个可选字符串,可用于确定首先按字母顺序应用哪些补丁。

—skip-phases strings

要跳过的阶段的列表

从父命令继承的选项

—rootfs string

[实验] 指向 ‘真实’ 宿主机根文件系统的路径。

接下来

  • 如果你使用 kubeadm v1.7.x 或更低版本初始化集群,则可以参考 kubeadm 配置 配置集群用于 kubeadm upgrade

最后修改 June 23, 2022 at 8:00 PM PST: [zh]Update reference pages(part-5) for links with ‘/zh/‘ prefix, using new prefix ‘/zh-cn/‘ (2c087454ea)