食品公司名字大全上海網(wǎng)站seo
1.維護(hù)node節(jié)點(diǎn)
設(shè)置節(jié)點(diǎn)狀態(tài)為不可調(diào)度狀態(tài),執(zhí)行以下命令后,節(jié)點(diǎn)狀態(tài)會(huì)多出一個(gè)SchedulingDisabled的狀態(tài),即新建的pod不會(huì)往該節(jié)點(diǎn)上調(diào)度,本身存在node中的pod保持正常運(yùn)行
kubectl cordon k8s-node01
kubectl get node
2.驅(qū)逐pod
在node節(jié)點(diǎn)設(shè)置為不可調(diào)度狀態(tài)后,就可以開始驅(qū)逐本節(jié)點(diǎn)上的pod了
kubectl drain k8s-node01 --ignore-daemonsets --delete-local-data
--delete-local-data
:在驅(qū)逐節(jié)點(diǎn)之前,刪除該節(jié)點(diǎn)上的 Pod 的本地?cái)?shù)據(jù)。本地?cái)?shù)據(jù)包括 Pod 的日志、鏡像和其他本地?cái)?shù)據(jù)。如果不添加此選項(xiàng),則本地?cái)?shù)據(jù)將保留在節(jié)點(diǎn)上,并且需要手動(dòng)清理
--ignore-daemonsets
:忽略 DaemonSet 類型的 Pod。DaemonSet 是一種在 Kubernetes 集群的每個(gè)節(jié)點(diǎn)上運(yùn)行一個(gè) Pod 的控制器。如果不添加此選項(xiàng),則?kubectl drain
?命令會(huì)嘗試驅(qū)逐所有類型的 Pod,包括 DaemonSet 類型的 Pod。在某些情況下,DaemonSet 類型的 Pod 是必需的,因此應(yīng)該使用此選項(xiàng)來(lái)忽略它們
驅(qū)逐pod的工作流程:
1.首先,Kubernetes 會(huì)將 Pod 標(biāo)記為“刪除中”,并阻止新的請(qǐng)求發(fā)送到該 Pod
2.然后,Kubernetes 會(huì)向 Pod 發(fā)送 SIGTERM 信號(hào),觸發(fā)優(yōu)雅關(guān)閉。在容器中運(yùn)行的進(jìn)程可以捕獲此信號(hào)并執(zhí)行清理操作
3.如果在默認(rèn)的 30 秒的優(yōu)雅期內(nèi) Pod 沒(méi)有關(guān)閉,則 Kubernetes 會(huì)發(fā)送 SIGKILL 信號(hào)來(lái)強(qiáng)制終止 Pod
如果實(shí)在驅(qū)逐不掉可以加上--force 參數(shù)
--force
:強(qiáng)制驅(qū)逐節(jié)點(diǎn)上的所有 Pod。如果不添加此選項(xiàng),則?kubectl drain
?命令會(huì)等待所有 Pod 關(guān)閉或重新調(diào)度到其他節(jié)點(diǎn)上。如果某些 Pod 無(wú)法正常關(guān)閉或重新調(diào)度,則?kubectl drain
?命令會(huì)一直等待,直到超時(shí)。使用?--force
?選項(xiàng)可以強(qiáng)制終止所有 Pod 并立即驅(qū)逐節(jié)點(diǎn)。需要注意的是,這可能會(huì)導(dǎo)致數(shù)據(jù)丟失或其他不良影響,因此應(yīng)該謹(jǐn)慎使用
在node節(jié)點(diǎn)驅(qū)逐完所有pod后,可以對(duì)該node節(jié)點(diǎn)升級(jí)硬件資源等操作
3.刪除pod
若是在新加入工作節(jié)點(diǎn),只想調(diào)度一部分pod到新節(jié)點(diǎn)上的情況下,需要使用刪除pod的方法去實(shí)現(xiàn)
需要對(duì)所有舊的node節(jié)點(diǎn)都設(shè)置不可調(diào)度狀態(tài),在執(zhí)行刪除pod操作
kubectl cordon k8s-node02
kuebctl delete pod pod名稱 -n 名稱空間
此時(shí)被刪除的pod就會(huì)調(diào)度到新的node節(jié)點(diǎn)上
刪除pod的工作流程:
1.首先,Kubernetes 會(huì)將 Pod 標(biāo)記為“刪除中”,并阻止新的請(qǐng)求發(fā)送到該 Pod
2.然后,Kubernetes 會(huì)向 Pod 發(fā)送 SIGTERM 信號(hào),觸發(fā)優(yōu)雅關(guān)閉。在容器中運(yùn)行的進(jìn)程可以捕獲此信號(hào)并執(zhí)行清理操作
3.如果在默認(rèn)的 30 秒的優(yōu)雅期內(nèi) Pod 沒(méi)有關(guān)閉,則 Kubernetes 會(huì)發(fā)送 SIGKILL 信號(hào)來(lái)強(qiáng)制終止 Pod
也可以在delete命令中使用如下參數(shù)修改默認(rèn)的優(yōu)雅關(guān)閉時(shí)間--grace-period=30
調(diào)度完成后,恢復(fù)舊的node節(jié)點(diǎn)為可調(diào)度狀態(tài)
kubectl uncordon k8s-node02