自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

五分鐘 K8s 實(shí)戰(zhàn)-應(yīng)用探針

開(kāi)發(fā) 前端
存活探針往往是用于保證應(yīng)用高可用的,雖然 kubernetes 可以在 Pod 退出后自動(dòng)重啟,比如 Pod OOM;但應(yīng)用假死他是檢測(cè)不出來(lái)的。

今天進(jìn)入 kubernetes 的運(yùn)維部分(并不是運(yùn)維 kubernetes,而是運(yùn)維應(yīng)用),其實(shí)日常我們大部分使用 kubernetes 的功能就是以往運(yùn)維的工作,現(xiàn)在云原生將運(yùn)維和研發(fā)關(guān)系變得更緊密了。

今天主要講解 Probe 探針相關(guān)的功能,探針最實(shí)用的功能就是可以控制應(yīng)用優(yōu)雅上線(xiàn)。

就緒探針

舉個(gè)例子,當(dāng)我們的 service 關(guān)聯(lián)了多個(gè) Pod 的時(shí)候,其中一個(gè) Pod 正在重啟但還沒(méi)達(dá)到可以對(duì)外提供服務(wù)的狀態(tài),這時(shí)候如果有流量進(jìn)入。

那這個(gè)請(qǐng)求肯定就會(huì)出現(xiàn)異常,從而導(dǎo)致問(wèn)題,所以我們需要一個(gè)和 kubernetes 溝通的渠道,告訴它什么時(shí)候可以將流量放進(jìn)來(lái)。

圖片圖片

比如如圖所示的情況,紅色 Pod 在未就緒的時(shí)候就不會(huì)有流量。

使用就緒探針就可以達(dá)到類(lèi)似的效果:

livenessProbe:  
  failureThreshold: 3  
  httpGet:  
    path: /ping  
    port: 8081  
    scheme: HTTP  
  periodSeconds: 3  
  successThreshold: 1  
  timeoutSeconds: 1

這個(gè)配置也很直接:

  • 配置一個(gè) HTTP 的 ping 接口
  • 每三秒檢測(cè)一次
  • 失敗 3 次則認(rèn)為檢測(cè)失敗
  • 成功一次就認(rèn)為檢測(cè)成功

但沒(méi)有配置就緒探針時(shí),一旦 Pod 的 Endpoint 加入到 service 中(Pod 進(jìn)入 Running 狀態(tài)),請(qǐng)求就有可能被轉(zhuǎn)發(fā)過(guò)來(lái),所以配置就緒探針是非常有必要的。

啟動(dòng)探針

而啟動(dòng)探針往往是和就緒探針搭配干活的,如果我們一個(gè) Pod 啟動(dòng)時(shí)間過(guò)長(zhǎng),比如超過(guò)上面配置的失敗檢測(cè)次數(shù),此時(shí) Pod 就會(huì)被 kubernetes 重啟,這樣可能會(huì)進(jìn)入無(wú)限重啟的循環(huán)。

所以啟動(dòng)探針可以先檢測(cè)一次是否已經(jīng)啟動(dòng),直到啟動(dòng)成功后才會(huì)做后續(xù)的檢測(cè)。

startupProbe:  
  failureThreshold: 30  
  httpGet:  
    path: /ping  
    port: 8081  
    scheme: HTTP  
  periodSeconds: 5  
  successThreshold: 1  
  timeoutSeconds: 1

我這里兩個(gè)檢測(cè)接口是同一個(gè),具體得根據(jù)自己是實(shí)際業(yè)務(wù)進(jìn)行配置;比如應(yīng)用端口啟動(dòng)之后并不代表業(yè)務(wù)已經(jīng)就緒了,可能某些基礎(chǔ)數(shù)據(jù)還沒(méi)加載到內(nèi)存中,這個(gè)時(shí)候就需要自己寫(xiě)其他的接口來(lái)配置就緒探針了。

圖片圖片

所有關(guān)于探針相關(guān)的日志都可以在 Pod 的事件中查看,比如如果一個(gè)應(yīng)用在啟動(dòng)的過(guò)程中頻繁重啟,那就可以看看是不是某個(gè)探針檢測(cè)失敗了。

存活探針

存活探針往往是用于保證應(yīng)用高可用的,雖然 kubernetes 可以在 Pod 退出后自動(dòng)重啟,比如 Pod OOM;但應(yīng)用假死他是檢測(cè)不出來(lái)的。

為了保證這種情況下 Pod 也能被自動(dòng)重啟,就可以配合存活探針使用:

livenessProbe:  
  failureThreshold: 3  
  httpGet:  
    path: /ping  
    port: 8081  
    scheme: HTTP  
  periodSeconds: 3  
  successThreshold: 1  
  timeoutSeconds: 1

一旦接口響應(yīng)失敗,kubernetes 就會(huì)嘗試重啟。

圖片圖片

總結(jié)

圖片圖片

以上探針配置最好是可以在研效平臺(tái)可視化配置,這樣維護(hù)起來(lái)也比較簡(jiǎn)單。

探針是維護(hù)應(yīng)用健康的必要手段,強(qiáng)烈推薦大家都進(jìn)行配置。

責(zé)任編輯:武曉燕 來(lái)源: crossoverJie
相關(guān)推薦

2023-11-15 13:44:00

k8s-域名日志

2023-09-27 08:09:22

2023-09-15 08:00:20

Ingress網(wǎng)關(guān)Istio

2020-02-19 19:26:27

K8S開(kāi)源平臺(tái)容器技術(shù)

2023-11-30 08:08:30

k8s優(yōu)雅停機(jī)

2023-09-21 11:28:28

Kubernetes云原生

2023-09-06 08:12:04

k8s云原生

2021-03-12 08:20:24

架構(gòu)網(wǎng)絡(luò)模型

2023-09-27 22:33:40

KubernetesK8S

2023-12-25 08:05:35

2024-01-12 08:03:29

k8s配置持久化

2023-09-24 22:47:42

Kubernetes親和性

2024-01-29 13:03:02

2009-11-16 10:53:30

Oracle Hint

2024-12-11 07:00:00

面向?qū)ο?/a>代碼

2025-03-13 06:22:59

2020-06-16 08:47:53

磁盤(pán)

2023-01-30 07:51:38

云原生Kubernetesk8s

2023-08-04 08:19:02

2022-10-10 12:54:00

Flink運(yùn)維
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)