當前位置:首頁 » 雲伺服器 » 如何重啟pod對應的伺服器

如何重啟pod對應的伺服器

發布時間: 2023-05-12 06:31:51

① Pod生命周期和重啟策略

Pod的 重啟策略(RestartPolicy )應用於 Pod內!!! 所有容器 ,並且 僅在Pod所處的Node!!! 上由 kubelet 進行 判斷大伏和重啟 操作。

某個容器!!! 異常退裂仿並出或者健康檢查(詳見下節)失敗時,kubelet將根據 RestartPolicy的設置 來進行相應的操作。

Pod的重啟策略包括Always、OnFailure和Never,默認值為Always。

kubelet 重啟失效容器 時間間隔 sync-frequency 乘以 2n 來計算,例如1、2、4、8倍等, 最長延時5min ,並且在成功重啟後肆跡的10min後重置該時間。

Pod的重啟策略與控制方式息息相關,當前 可用於管理Pod的控制器 包括 ReplicationController Job DaemonSet 直接通過kubelet 管理( 靜態Pod )。

每種控制器 對Pod的 重啟策略要求!!! 如下。

② K8S強制重啟Pod並檢查pod是否正常運行

記錄兩個k8s操作場景:

一. 重啟pod (網上方法有很多種慶皮)
當沒有yaml文件時

二. 對於pod運行的健康檢查(一般都是寫在腳本中做健康檢查機譽尺差制)
第一種:
判斷是否為Running狀態

第二種:
判斷執行狀態

上面的困塵命令成功會輸出:deployment "health-cloud-yxtx" successfully rolled out

③ kubectl重啟某個pod或者強制停掉

由於項目起了多個節點,其中一個掛掉了,想要不用yaml。只重謹模啟掛祥汪緩掉的這個,可用命令:
kubectl get pod PODNAME -n NAMESPACE -o yaml | kubectl replace --force -f -

同樣的一個pod需要停掉執陵銷行命令
kubectl get deployment -n NAMESPACE
kubectl delete deployment DEPLOYNAME -n NAMESPACE

④ Pod 中容器重啟流程

測試的時候,通常需孫伍鍵要將 Pod 中的 container 頻繁地殺死,重啟。在這個過程中,Pod 的狀態經常會出現 CrashLoopBackOff ,而且 container 重啟的時間越來越長。

為了避免 container 頻繁地 restart,k8s 對 container restart 過程做了限制,使用 back-off 的方法,官方文檔中的說法是:

Failed containers that are restarted by Kubelet, are restarted with an exponential back-off delay, the delay is in multiples of sync-frequency 0, 1x, 2x, 4x, 8x … capped at 5 minutes and is reset after 10 minutes of successful execution.

這里先直接給出結論:

4 . 在步驟 3 中計算 backoff 的過程中,還會去檢查當前橘陵時間距離上一次 container 退出時的間隔,如果大於 2 * MaxContainerBackOff = 10 minutes ,那麼會將這個 container 對應的 backoff 重置為初始值 10s

通過源碼發現, kubernetes/pkg/kubelet/kubelet.go 文件中有兩個常量:

使用這兩個變數構造了一則巧個 BackOff 對象,這個是 kubelet 的屬性,對該 node 上所有 pod 都適用

BackOff 結構如下

然後在 SyncPod 方法中使用這個對象

SyncPod 具體做的事有:

同樣在這個文件中,有一個關鍵的函數

其中 backOff.Next 函數定義如下

⑤ kubernetes 重啟的幾種方法

kubernetes 重啟的幾種方法

方法1
kubectl scale deployment XXXX --replicas=0 -n {namespace}
kubectl scale deployment XXXX --replicas=1 -n {namespace}

方判伍法2
kubectl delete pod {podname} -n {namespace}

方法旁棚3
kubectl get pod {podname} -n {namespace} -o yaml | kubectl replace --force -f -

方法4
Kubernetes 1.15開始才有運沖則

kubectl rollout restart {your_deployment_name}

⑥ k8s啟動Pod遇到CrashLoopBackOff的解決方法

一賀游虛直正常運的k8s,集群節點沒問題,但啟動pod出現異常
等待中: CrashLoopBackOff

3.查看此pod日誌

錯誤原因在這里 經查elasticsearch運行要求:
vm.max_map_count內核參數必需大於262114,確認系統調過 $sysctl -w vm.max_map_count=262144
這里注意的問題是 上述屬於臨時性調整,主機重啟後又恢復到默認狀態
記久性修改 vi /etc/sysconfig 加入:

保存/etc/sysctl.conf,重新啟動伺服器以應用更改,或執行:sysctl -p以應用更改而不重新啟動.他們將在重新啟動時永久保持.
重啟pod 進入控制台 查詢狀態 恢復

4.總結 出現故障可能很多種 但要學查看日誌 排查具體原因及應禪燃用所在磨碼

⑦ 重啟pod的三種方法

1.Rolling Restart
kubectl rollout restart deployment [deployment_name]
2.Using Environment Variables
kubectl set env deployment [deployment_name] DEPLOY_DATE="$(date)"

3: Scaling the Number of Replicas

kubectl scale deployment [deployment_name] --replicas=0
kubectl scale deployment [deployment_name] --replicas=1

⑧ 搭建預發環境

1. 首先要有一個ZOC7

2.按下圖操作新建一個連接

host 內的配置如下

login內的配置如下,賬號:aiyong 密碼:yYbLgYB184

3. 點擊connect 連接到預發慧檔差地址

連接成功會出現下面這個界面

4. 在命令行輸入

ssh 172.17.0.76

然後輸入密碼

hMsJjJY76

跳轉到了一個新地址

5. 在命令行輸入

kubectl get pod -n prepublish

能看到運行在機器上的所有pod鏡像

我們的預發環境就是在對前皮應鏡像內

6. 進入鏡像

kubectl exec -it pod名字 bash -n prepublish

7.  例如我現在進入了 pre-aiyong-item-legacy-mitem-master-deployment-6db8d58847-4vrpp 這個鏡像,輸入命令ll可以看到該路徑下所有文件,進入www/app/controllers 即對應我們項蠢褲目下的 contollers,修改本地的文件然後用    rz -y  命令上傳該文件即可。

8.nginx配置路徑

9.日誌路徑

/var/log/nginx

10. 重啟pod

刪除pod即可重啟

kubectl delete pod pre-aiyong-item-legacy-mitem-master-deployment-6db8d58847-94p4p -nprepublish

熱點內容
cs16製作腳本 發布:2025-05-16 18:44:25 瀏覽:443
分油演算法 發布:2025-05-16 18:36:19 瀏覽:690
吃雞低配置手機如何開極致畫質 發布:2025-05-16 18:15:20 瀏覽:191
空密碼訪問 發布:2025-05-16 18:08:51 瀏覽:892
騰訊雲伺服器安全規則設置 發布:2025-05-16 17:51:33 瀏覽:650
k3伺服器不可用怎麼辦 發布:2025-05-16 17:51:30 瀏覽:537
編輯html源碼 發布:2025-05-16 17:45:45 瀏覽:65
邊的存儲方法 發布:2025-05-16 17:33:16 瀏覽:927
海量伺服器怎麼拆 發布:2025-05-16 17:31:07 瀏覽:211
運行與編譯的區別 發布:2025-05-16 17:25:02 瀏覽:824