kubeadm upgrade
kubeadm upgrade
是一個使用者友好的命令,它將複雜的升級邏輯封裝在一個命令中,支援升級計劃和實際執行。
kubeadm 升級指南
使用 kubeadm 執行升級的步驟在此 文件 中概述。對於舊版本的 kubeadm,請參考 Kubernetes 網站的舊文件集。
您可以使用 kubeadm upgrade diff
檢視將應用於靜態 Pod 清單的更改。
在 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
Synopsis
檢查可升級到的版本,並驗證當前叢集是否可升級。此命令只能在存在 kubeconfig 檔案 "admin.conf" 的控制平面節點上執行。要跳過網際網路檢查,請傳入可選的 [version] 引數。
kubeadm upgrade plan [version] [flags]
Options
--allow-experimental-upgrades | |
顯示 Kubernetes 的不穩定版本作為升級替代選項,並允許升級到 Kubernetes 的 Alpha/Beta/Release Candidate 版本。 | |
--allow-missing-template-keys 預設值: true | |
如果為 true,則在模板中缺少欄位或對映鍵時忽略模板中的任何錯誤。僅適用於 golang 和 jsonpath 輸出格式。 | |
--allow-release-candidate-upgrades | |
顯示 Kubernetes 的 Release Candidate 版本作為升級替代選項,並允許升級到 Kubernetes 的 Release Candidate 版本。 | |
--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
Synopsis
將您的 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]
Options
--allow-experimental-upgrades | |
顯示 Kubernetes 的不穩定版本作為升級替代選項,並允許升級到 Kubernetes 的 Alpha/Beta/Release Candidate 版本。 | |
--allow-release-candidate-upgrades | |
顯示 Kubernetes 的 Release Candidate 版本作為升級替代選項,並允許升級到 Kubernetes 的 Release Candidate 版本。 | |
--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
Synopsis
顯示將應用於現有靜態 Pod 清單的差異。另請參閱:kubeadm upgrade apply --dry-run
kubeadm upgrade diff [version] [flags]
Options
--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
Synopsis
叢集中節點的升級命令
“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]
Options
--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
配置您的叢集