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,當範本中缺少欄位或對應金鑰時,忽略範本中的任何錯誤。僅適用於 golang 和 jsonpath 輸出格式。 | |
--allow-release-candidate-upgrades | |
顯示 Kubernetes 的候選發行版本作為升級替代方案,並允許升級至 Kubernetes 的候選發行版本。 | |
--config 字串 | |
kubeadm 組態檔的路徑。 | |
-h, --help | |
plan 的說明 | |
--ignore-preflight-errors 字串 | |
要顯示為警告的檢查清單。範例:'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 [版本]" 指令會執行以下階段
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 字串 | |
kubeadm 組態檔的路徑。 | |
--dry-run | |
不變更任何狀態,僅輸出將執行的動作。 | |
--etcd-upgrade 預設值:true | |
執行 etcd 的升級。 | |
-f, --force | |
強制升級,即使某些需求可能未滿足。這也暗示非互動模式。 | |
-h, --help | |
apply 的說明 | |
--ignore-preflight-errors 字串 | |
要顯示為警告的檢查清單。範例:'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 清單的差異。另請參閱:kubeadm upgrade apply --dry-run
概要
顯示將套用於現有靜態 Pod 清單的差異。另請參閱:kubeadm upgrade apply --dry-run
kubeadm upgrade diff [version] [flags]
選項
--config 字串 | |
kubeadm 組態檔的路徑。 | |
-c, --context-lines int 預設值:3 | |
diff 中的上下文行數 | |
-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 字串 | |
kubeadm 組態檔的路徑。 | |
--dry-run | |
不變更任何狀態,僅輸出將執行的動作。 | |
--etcd-upgrade 預設值:true | |
執行 etcd 的升級。 | |
-h, --help | |
node 的說明 | |
--ignore-preflight-errors 字串 | |
要顯示為警告的檢查清單。範例:'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