新聞中心
六種方法教你如何通過kubectl 重啟Pod
作者:云技術(shù)趣談 2022-11-29 10:33:15
云計(jì)算
云原生 大家可能都知道 kubectl 其實(shí)沒有 restart pod 這個(gè)命令,這個(gè)主要是由于在 k8s 中pod 的管理屬于rs 等控制器,并不需要運(yùn)維手動(dòng)維護(hù),但有時(shí)候,我們修改了configmap 的配置文件后,希望重啟pod 加載配置,此時(shí)就需要 “重啟” Pod。

雞東ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
點(diǎn)擊參加51CTO網(wǎng)站內(nèi)容調(diào)查問卷
大家可能都知道 kubectl 其實(shí)沒有 restart pod 這個(gè)命令,這個(gè)主要是由于在 k8s 中pod 的管理屬于rs 等控制器,并不需要運(yùn)維手動(dòng)維護(hù),但有時(shí)候,我們修改了configmap 的配置文件后,希望重啟pod 加載配置,此時(shí)就需要 “重啟” Pod。這里說的“重啟”是加了引號(hào)的,準(zhǔn)確地來說,是重建pod,給用戶的感覺是重啟。
下面介紹六種k8s 里面重啟pod的方式
方法一:kubectl rollout restart
這個(gè)命令是比較推薦的,通過
kubectl rollout restart deployment -n 便可以重建這個(gè)deployment下的 pod,和滾動(dòng)升級(jí)類似,并不會(huì)一次性殺死Pod,比較平滑。
方法二:kubectl scale
這種方法相對(duì)來說,比較粗放,我們可以先將副本調(diào)成 0
kubectl scale deployment -n --replicas=0 然后再改回目的副本數(shù)
kubectl scale deployment -n --replicas=10 但這個(gè)會(huì)中斷服務(wù)。但兩條命令也能解決,下面介紹的就更直接了。
方法三: kubectl delete pod
這個(gè)我就不解釋了
kubectl delete pod -n 還是多說一句,此時(shí)優(yōu)雅刪除的效果還是有的。再多說一句,直接刪 rs 效果也挺好。
方法四:kubectl replace
這種方法是通過更新Pod ,從觸發(fā)k8s pod 的更新
kubectl get pod -n -o yaml | kubectl replace --force -f - 方法五:kubectl set env
通過 設(shè)置環(huán)境變量,其實(shí)也是更新pod spec 從而觸發(fā)滾動(dòng)升級(jí)。
kubectl set env deployment -n DEPLOY_DATE="$(date)" 只不過這里通過kubectl 命令行,當(dāng)我們通過API 更新pod spec 后一樣會(huì)觸發(fā)滾動(dòng)升級(jí)
方法六: kill 1
這種方法就是在容器里面 kill 1 號(hào)進(jìn)程。
kubectl exec -it -c --/bin/sh -c "kill 1" 但是但是但是,重要的話說三遍,它有個(gè)局限,必須要求你的 1 號(hào)進(jìn)程要 捕獲 TERM 信號(hào),否則在容器里面是殺不死自己的,這個(gè)在之前的文章已經(jīng)介紹過了。
當(dāng)前文章:六種方法教你如何通過Kubectl 重啟Pod
本文來源:http://www.5511xx.com/article/cogchsc.html


咨詢
建站咨詢
