我在 go 中編寫了一個作業(yè)調(diào)度程序服務,它定期上傳文件。該服務內(nèi)沒有運行 HTTP 服務。通常,對于 HTTP 服務,下面是 liveness 和 readiness 探針配置,需要在部署文件中添加。readinessProbe: httpGet: path: <http_get_path> port: 3401 initialDelaySeconds: 5 timeoutSeconds: 1 periodSeconds: 15livenessProbe: httpGet: path: <http_get_path> port: 3401 initialDelaySeconds: 15 timeoutSeconds: 1 periodSeconds: 15對于如下的獨立服務://main : main function to trigger the servicesfunc main() { scheduler.RunScheduler()}//RunScheduler : Run the schedulerfunc RunScheduler() { done := make(chan bool) quit := make(chan bool) go startJob1() go startJob2() sigs := make(chan os.Signal, 1) //pass done "True", only if the application is stopped signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) <-sigs .....}它只是定期運行并且不監(jiān)聽任何端口,我們可以配置任何類型的就緒探針和活性探針嗎?
1 回答

慕哥9229398
TA貢獻1877條經(jīng)驗 獲得超6個贊
由于您的容器不處理您不需要的任何 http 請求readinessProbe。
readinessProbe:指示容器是否準備好響應請求。如果就緒探測失敗,端點控制器會從與 Pod 匹配的所有服務的端點中刪除 Pod 的 IP 地址。
什么時候應該使用活性探針?
你需要一個livenessProbe.
livenessProbe:指示容器是否正在運行。如果 liveness 探測失敗,kubelet 會殺死容器,容器會受到其重啟策略的約束。
什么時候應該使用就緒探針?
這是一個ps過程的例子:
livenessProbe:
exec:
command:
- ps -ef | grep my_process_name
initialDelaySeconds: 120
periodSeconds: 30
確保您ps在$PATH.
另一種方法是在 pod start 的 tmp 目錄中創(chuàng)建一個文件,并檢查命令中是否存在文件exec。
- 1 回答
- 0 關(guān)注
- 139 瀏覽
添加回答
舉報
0/150
提交
取消