kubeadm reset
盡力還原由 kubeadm init
或 kubeadm join
所做的變更。
盡力還原由 'kubeadm init' 或 'kubeadm join' 對此主機所做的變更
摘要
盡力還原由 'kubeadm init' 或 'kubeadm join' 對此主機所做的變更
「reset」指令會執行下列階段
preflight Run reset pre-flight checks
remove-etcd-member Remove a local etcd member.
cleanup-node Run cleanup node.
kubeadm reset [flags]
選項
--cert-dir string 預設值:「/etc/kubernetes/pki」 | |
憑證儲存目錄的路徑。如果指定,則清除此目錄。 | |
--cleanup-tmp-dir | |
清除「/etc/kubernetes/tmp」目錄 | |
--config string | |
kubeadm 組態檔案的路徑。 | |
--cri-socket string | |
要連線的 CRI Socket 路徑。如果為空,kubeadm 將嘗試自動偵測此值;僅當您安裝多個 CRI 或具有非標準 CRI Socket 時才使用此選項。 | |
--dry-run | |
不套用任何變更;僅輸出將完成的事項。 | |
-f, --force | |
重設節點,無需提示確認。 | |
-h, --help | |
reset 的說明 | |
--ignore-preflight-errors strings | |
將其錯誤顯示為警告的檢查清單。範例:「IsPrivilegedUser,Swap」。值「all」會忽略所有檢查中的錯誤。 | |
--kubeconfig string 預設值:「/etc/kubernetes/admin.conf」 | |
與叢集通訊時要使用的 kubeconfig 檔案。如果未設定此標誌,則可以搜尋一組標準位置以尋找現有的 kubeconfig 檔案。 | |
--skip-phases strings | |
要跳過的階段清單 |
從父指令繼承的選項
--rootfs string | |
「真實」主機根檔案系統的路徑。這會導致 kubeadm chroot 到提供的路徑中。 |
Reset 工作流程
kubeadm reset
負責從使用 kubeadm init
或 kubeadm join
指令建立的檔案中,清除節點本機檔案系統。對於控制平面節點,reset
也會從 etcd 叢集中移除此節點的本機堆疊 etcd 成員。
kubeadm reset phase
可用於執行上述工作流程的個別階段。若要跳過階段清單,您可以使用 --skip-phases
標誌,其運作方式與 kubeadm join
和 kubeadm init
階段執行器類似。
外部 etcd 清除
如果使用外部 etcd,kubeadm reset
將不會刪除任何 etcd 資料。這表示如果您再次使用相同的 etcd 端點執行 kubeadm init
,您將看到先前叢集的狀態。
若要清除 etcd 資料,建議您使用 etcdctl 等用戶端,例如
etcdctl del "" --prefix
請參閱 etcd 文件 以取得更多資訊。
正常關閉 kube-apiserver
如果您的 kube-apiserver
組態設定了 --shutdown-delay-duration
標誌,您可以執行下列指令來嘗試正常關閉執行的 API 伺服器 Pod,然後再執行 kubeadm reset
yq eval -i '.spec.containers[0].command = []' /etc/kubernetes/manifests/kube-apiserver.yaml
timeout 60 sh -c 'while pgrep kube-apiserver >/dev/null; do sleep 1; done' || true
下一步
- kubeadm init 以啟動 Kubernetes 控制平面節點
- kubeadm join 以啟動 Kubernetes 工作節點並將其加入叢集