K8S 節點維護

最近公司服務器到期,需要調整配置,但是配置調整的話,節點必須要重啓的。其他情況下, 比如節點進行打補丁、操作系統升級等操作時,需停機維護,這就涉及 pod 驅逐遷移。今天說一下調整的過程,以及調整過程中碰到的問題。

節點維護

  1. 設置節點不可調度

    設置 xuh04 不可調度,查看各節點狀態,xuh04 爲 SchedulingDisabled,此時 master 不會將新的 pod 調度到該節點上,但是該節點上的 pod 還是正常運行。

  2. 驅逐節點上的 pod

    kubectl drain xuh04 --delete-emptydir-data --ignore-daemonsets --force

    kubectl drain 命令參數說明

  1. 維護結束

    # kubectl uncordon xuh04
    node/xuh04 uncordoned
    # kubectl delete node xuh04

避坑

  1. 沒有驅逐節點上的 pod,不要直接重啓,直接重啓的話,會造成 pod 狀態丟失

    導致 pod 不能調度到其他節點,如果不是多副本的話,服務會直接掛掉。直到節點恢復正常。

  2. 爲了確保 drain 驅逐 pod 的時候,容器應用服務不中斷,必須滿足:

  1. 使用 PodDisruptionBudget (PDB) 保護應用程序

    由於時間問題,沒有嘗試,查了下解決方案

    https://kuboard.cn/learning/k8s-intermediate/workload/disruption-exam
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/hBjOvag3kfGqe6FnL2UnYA