iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
0

當我們有多台微服務時,要如何確保每都是穩定的運作,將是一個困難的挑戰,這部分 Kubernetes 已經幫我們設想好了,在 Kubernetes 裡它提供了兩個屬性,livenessProbe 和 readinessProbe。

livenessProbe

這個設定的用途是判別服務是否存活,檢驗的方式就是定期戳一個網址,如果是回應 2xx 則是正常,反之如果有異常時,Kubernetes 就會啟動自動復原機制,將有問題的 pod 刪除,重新生成一台新的 pod。

...略...
livenessProbe:
  httpGet:
    path: /
    scheme: HTTP
    port: 8080
  initialDelaySeconds: 3
  periodSeconds: 60
  successThreshold: 2
  failureThreshold: 5
...略...

readinessProbe

這個設定的用途是判別服務使否已經啟動完成,準備可以服務了,如果回應正常的話,Kubernetes 就會將服務對外的線路打開,反之則會關閉。

常見情境

例如你有一個 API Server 它重度與 Mongodb 跟 Redis 服務互動,如果有 API Server 跟 Mongodb 已經順利連上線,但是 API Server 跟 Redis 連不到,將會導致,某些 API 正常,有些有使用到 Redis 資源的 API 則回應錯誤。這就是一個很好的時機,將 Mongodb 跟 Redis 的連線檢查,包在同個 API,這樣就可以確保系統的行為,如你預期的一樣。


上一篇
Production 環境 CI/CD
下一篇
微服務框架 for Node.js
系列文
Microservices in Action: with example in Node.js24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言