k8s mysql重启_kubernetes Pod 应用自动恢复(重启策略 + 健康检查)简介
一、重啟策略
Always:當容器終止退出后,總是重啟容器,默認策略。
OnFailure:當容器異常退出(退出狀態碼非 0)時,才重啟容器。
Never:當容器終止退出,從不重啟容器。
yaml 格式:
spec:
restartPolicy: Always
containers:
- image: nginx
name: web
注意:退出狀態碼指的是 shell 狀態碼,返回 0 表示正常退出,返回非 0 則代表異常退出
應用場景:
Always:如 nginx,mysql 等需要持續運行的程序
OnFailure:定時的,短周期運行的任務,如數據庫備份(cronjob),可以利用返回碼
Never:應用只運行一次,如數據的離線處理,批處理等
二、健康檢查:
由于 pod 不關心容器應用程序狀態,所以需要配置健康檢查,讓 pod 去根據應用程序的狀態決定 pod 是否處于 running 狀態。
1.livenessProbe(存活檢查)
如果檢查失敗,將殺死容器,根據 Pod 的 restartPolicy 來操作。
yaml 格式:
spec:
restartPolicy: Always
containers:
- image: nginx
name: web
livenessProbe:
tcpSocket:
port: 8080
initiaDelaySceonds: 30
periodSeconds: 20
參數解釋:
initiaDelaySceonds: 容器啟動后進行健康檢查的等待時間
periodSeconds: 健康檢查的時間間隔
2. readinessProbe(就緒檢查)
如果檢查失敗,Kubernetes 會把 Pod 從 service endpoints 中剔除。
支持以下三種檢查方法:
httpGet:發送 HTTP 請求,返回 200-400 范圍狀態碼為成功。
exec:執行 Shell 命令返回狀態碼是 0 為成功。
tcpSocket:發起 TCP Socket 建立成功。
yaml 格式:
spec:
restartPolicy: Always
containers:
- image: nginx
name: web
readinessProbe:
tcpSocket:
port: 8080
initiaDelaySceonds: 30
periodSeconds: 20
注意:上述兩種健康檢查方式可以同時使用,參數也共用
三、參考
總結
以上是生活随笔為你收集整理的k8s mysql重启_kubernetes Pod 应用自动恢复(重启策略 + 健康检查)简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt mysql 清空表格_qt删除数据
- 下一篇: mysql 授权truncate_有没有