欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何理解Kubernetes探針

這篇文章給大家介紹如何理解Kubernetes 探針,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專注重慶網(wǎng)站建設(shè)公司、網(wǎng)站設(shè)計(jì),有關(guān)成都定制網(wǎng)站方案、改版、費(fèi)用等問(wèn)題,行業(yè)涉及成都三維植被網(wǎng)等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。

配置 readiness、liveness 和 startup 探針可以處理不健康的 Pod,小編介紹了三種類型的探針、最佳實(shí)踐和有關(guān)工具,以檢測(cè)可能存在的配置問(wèn)題。

分布式系統(tǒng)和微服務(wù)體系結(jié)構(gòu)的挑戰(zhàn)之一是自動(dòng)檢測(cè)不正常的應(yīng)用程序,并將請(qǐng)求(request)重新路由到其他可用系統(tǒng),恢復(fù)損壞的組件。健康檢查是應(yīng)對(duì)該挑戰(zhàn)的一種可靠方法。使用 Kubernetes,可以通過(guò)探針配置運(yùn)行狀況檢查,以確定每個(gè) Pod 的狀態(tài)。

默認(rèn)情況下,Kubernetes 會(huì)觀察 Pod 生命周期,并在容器從掛起(pending)狀態(tài)轉(zhuǎn)移到成功(succeeded)狀態(tài)時(shí),將流量路由到 Pod。Kubelet 會(huì)監(jiān)控崩潰的應(yīng)用程序,并重新啟動(dòng) Pod 進(jìn)行恢復(fù)。許多開(kāi)發(fā)人員認(rèn)為這樣的基本設(shè)置就足夠了,尤其是當(dāng) Pod 內(nèi)的應(yīng)用程序還配置了守護(hù)進(jìn)程管理器(例如 Node.js 的 PM2)時(shí)。        
但有一種意外情況,當(dāng) Kubernetes 在所有容器啟動(dòng)后,認(rèn)為 Pod 是健康且可以接受請(qǐng)求時(shí),但應(yīng)用程序在實(shí)際準(zhǔn)備就緒之前就已收到流量,比如應(yīng)用程序在處理應(yīng)用程序邏輯之前,初始化了一些狀態(tài),建立了數(shù)據(jù)庫(kù)連接或加載了數(shù)據(jù)。當(dāng) Deployment 開(kāi)始擴(kuò)展時(shí),未就緒的應(yīng)用程序會(huì)接收流量并返回 500 錯(cuò)誤,這造成了應(yīng)用程序?qū)嶋H的準(zhǔn)備就緒與 Kubernetes 認(rèn)為的準(zhǔn)備就緒之間的時(shí)間間隔問(wèn)題。        

同樣的,這也是 Kubernetes 探針用來(lái)定義容器何時(shí)準(zhǔn)備接受流量,以及何時(shí)重新啟動(dòng)容器的方式。從 Kubernetes v1.16 開(kāi)始,已經(jīng)支持三種類型的探針。在文中將介紹這三種類型的探針、最佳實(shí)踐和有關(guān)工具,以檢測(cè)可能存在的配置問(wèn)題。

K8sMeetup        

Kubernetes 探針

Kubernetes 版本小于 v1.15 時(shí)支持 readiness 和 liveness 探針,在 v1.16 中添加了 startup 探針作為 Alpha 功能,并在 v1.18 中升級(jí)為 Beta。

這三種探針均具有以下參數(shù):        
  • initialDelaySeconds :?jiǎn)?dòng) liveness、readiness 探針前要等待的秒數(shù)。
  • periodSeconds :檢查探針的頻率。
  • timeoutSeconds :將探針標(biāo)記為超時(shí)(未通過(guò)運(yùn)行狀況檢查)之前的秒數(shù)。
  • successThreshold :探針需要通過(guò)的最小連續(xù)成功檢查數(shù)量。
  • failureThreshold :將探針標(biāo)記為失敗之前的重試次數(shù)。對(duì)于 liveness 探針,這將導(dǎo)致 Pod 重新啟動(dòng)。對(duì)于 readiness 探針,將標(biāo)記 Pod 為未就緒(unready)。
Readiness 探針        
readiness 探針可以讓 kubelet 知道應(yīng)用程序何時(shí)準(zhǔn)備接受新流量。          如果應(yīng)用程序在進(jìn)程啟動(dòng)后需要一些時(shí)間來(lái)初始化狀態(tài),要配置 readiness 探針讓 Kubernetes 在發(fā)送新流量之前進(jìn)行等待。readiness 探針的主要作用是將流量引導(dǎo)至 service 后的 deployment。        

如何理解Kubernetes 探針

關(guān)于 readiness 探針有一點(diǎn)很重要,它會(huì)在容器的整個(gè)生命周期中運(yùn)行。          這意味著 readiness 探針不僅會(huì)在啟動(dòng)時(shí)運(yùn)行,而且還會(huì)在 Pod 運(yùn)行期間反復(fù)運(yùn)行。                    這是為了處理應(yīng)用程序暫時(shí)不可用的情況(比如加載大量數(shù)據(jù)、等待外部連接時(shí))。          在這種情況下,我們不一定要?dú)⑺缿?yīng)用程序,可以等待它恢復(fù)。          readiness 探針可用于檢測(cè)這種情況,并在 Pod 再次通過(guò) readiness 檢查后,將流量發(fā)送到這些 Pod。                  
Liveness 探針        
liveness 探針用于重新啟動(dòng)不健康的容器。          Kubelet 會(huì)定期地 ping liveness 探針,以確定健康狀況,并在 liveness 檢查不通過(guò)的情況下殺死 Pod。liveness 檢查可以幫助應(yīng)用程序從死鎖中恢復(fù)。如果不進(jìn)行 liveness 檢查,Kubernetes 會(huì)認(rèn)為死鎖中的 Pod 處于健康狀態(tài),因?yàn)閺?Kubernetes 的角度來(lái)看,Pod 的子進(jìn)程仍在運(yùn)行,是健康的。通過(guò)配置 liveness 探針,kubelet 可以檢測(cè)到應(yīng)用程序處于不健康狀態(tài),并重新啟動(dòng) Pod 以恢復(fù)可用性。        

如何理解Kubernetes 探針

Startup 探針                  
startup 探針與 readiness 探針類似,但它僅在啟動(dòng)時(shí)執(zhí)行,能針對(duì)啟動(dòng)緩慢的容器或在初始化過(guò)程中有不可預(yù)測(cè)行為的應(yīng)用程序進(jìn)行優(yōu)化。          借助 readiness 探針,我們可以配置           initialDelaySeconds           來(lái)確定 readiness 探測(cè)在準(zhǔn)備就緒前要等待多長(zhǎng)時(shí)間。        

假設(shè)有一個(gè)偶爾需要下載大量數(shù)據(jù)的應(yīng)用程序,由于 initialDelaySeconds 是一個(gè)靜態(tài)數(shù)字,因此該應(yīng)用程序即使不需要那么長(zhǎng)的初始化等待時(shí)間,我們也必須設(shè)置最保守的等待時(shí)間。通過(guò) startup 探針,我們可以配置 failureThreshold 和 periodSeconds 來(lái)解決該問(wèn)題,例如設(shè)置 failureThreshold 為 15,periodSeconds 為 5,這意味著應(yīng)用程序在失敗之前會(huì)有 10x5=75s 的啟動(dòng)時(shí)間。

K8sMeetup        

配置探針

現(xiàn)在我們了解了不同類型的探針,下面是配置每種探針的三種不同方式。

HTTP        
kubelet 將 HTTP GET 請(qǐng)求發(fā)送到 endpoint,并檢查 2xx 或 3xx 響應(yīng)。我們可以重復(fù)使用現(xiàn)有的 HTTP endpoint 或設(shè)置輕量級(jí) HTTP 服務(wù)器以進(jìn)行探測(cè)(例如,具有           /healthz           endpoint 的 Express server)。HTTP 探針包含其他額外參數(shù):        
  • host :要連接的主機(jī)名(默認(rèn)值:pod 的 IP)。
  • scheme :HTTP(默認(rèn))或 HTTPS。
  • path :HTTP/S 服務(wù)器上的路徑 。
  • httpHeaders :自定義標(biāo)頭(如果需要標(biāo)頭用于身份驗(yàn)證、CORS 設(shè)置等) 。
  • port :訪問(wèn)服務(wù)器的端口名稱或端口號(hào)。

如何理解Kubernetes 探針

TCP        
如果僅需要檢查是否可以建立 TCP 連接,則可以指定 TCP 探針。如果建立 TCP 連接,則將 Pod 標(biāo)記為運(yùn)行狀況良好。對(duì)于不適合使用 HTTP 探針的 gRPC 或 FTP 服務(wù)器,TCP 探針可能會(huì)有用。        

如何理解Kubernetes 探針

Command        
可以將探針配置為運(yùn)行 shell 命令。如果命令返回的退出代碼為 0,則檢查通過(guò),否則 Pod 將被標(biāo)記為不健康。如果不希望公開(kāi) HTTP 服務(wù)器與端口,或者希望通過(guò)命令檢查初始化步驟(例如,檢查是否已創(chuàng)建配置文件、運(yùn)行 CLI 命令),這種類型的探針會(huì)很有用。        
如何理解Kubernetes 探針        
K8sMeetup        

最佳實(shí)踐

雖然說(shuō)探針的確切參數(shù)和使用方法取決于應(yīng)用程序,但也有一些常用的最佳實(shí)踐:

  • 對(duì)于較舊的(≤v1.15)Kubernetes 集群,使用具有初始延遲的 readiness 探針來(lái)處理容器啟動(dòng)階段。
  • 對(duì)于較新的(≥v1.16)Kubernetes 集群,如果是具有不可預(yù)測(cè)或可變啟動(dòng)時(shí)間的應(yīng)用程序應(yīng)使用 startup 探針。startup 探針與 readiness 和 liveness 探針共享相同的 endpoint(例如  /healthz ),但能將  failureThreshold  設(shè)置得比其他探針更高,以擁有更長(zhǎng)的啟動(dòng)時(shí)間,相對(duì)于 liveness 和 readiness 而言,設(shè)置的失敗時(shí)間會(huì)更合理。
  • 如果 readiness 探針不用于其他信號(hào)目的,readiness 和 liveness 探針可以共享相同的 endpoint,但如果只有一個(gè) Pod(也就是使用 VPA)時(shí),設(shè)置 readiness 探針來(lái)解決啟動(dòng)行為,使用 liveness 探針來(lái)確定運(yùn)行狀況。這種情況下,標(biāo)記 Pod 不健康意味著停機(jī)時(shí)間。
  • readiness 檢查可以用各種方式來(lái)發(fā)出系統(tǒng)故障的信號(hào)。例如,當(dāng)應(yīng)用程序失去與數(shù)據(jù)庫(kù)的連接時(shí),可以使用 readiness 探針暫時(shí)阻止新請(qǐng)求并允許系統(tǒng)重新連接。它還可以將繁忙的 Pod 標(biāo)記為未準(zhǔn)備,將工作負(fù)載平衡到其他 Pod。

簡(jiǎn)而言之,定義明確的探針通常會(huì)帶來(lái)更好的彈性和可用性。確保觀察啟動(dòng)時(shí)間和系統(tǒng)行為,在應(yīng)用程序更改時(shí)調(diào)整探針設(shè)置。

K8sMeetup        

工具

最后,鑒于 Kubernetes 探針的重要性,我們可以使用 Kubernetes 資源分析工具來(lái)檢測(cè)缺失的探針。這些工具可以在現(xiàn)有集群上運(yùn)行,也可以置入 CI/CD 流程中,可以在沒(méi)有正確配置資源的情況下自動(dòng)拒絕工作負(fù)載。

  • polaris:一個(gè)具有儀表板的資源分析工具,也可以用作驗(yàn)證 webhook 或 CLI 工具。
  • kube-score:一個(gè)靜態(tài)代碼分析工具,可用于 Helm、Kustomize 和標(biāo)準(zhǔn) YAML 文件。
  • popeye:只讀的實(shí)用工具,用于掃描 Kubernetes 集群并報(bào)告配置中的潛在問(wèn)題。

關(guān)于如何理解Kubernetes 探針就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

網(wǎng)頁(yè)名稱:如何理解Kubernetes探針
鏈接URL:http://aaarwkj.com/article6/pccpog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、App設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
十八禁无遮挡污污污网站| 久久精品中文字幕人妻| 婷婷国产成人久久精品激情| 日韩欧美亚洲一区二区| 日本免费一区二区三区手机在线 | 日韩亚洲欧美精品另类| 亚洲综合五月天色婷婷| 欧美大尺度影片在线观看| 亚洲日本国产精品第一页| 精品国产女同一区二区| 日本道加勒比二三五区视频| 韩国午夜福利视频网站| 国产强烈高潮粗暴对白| 亚洲av天堂天天天堂色| 激情五月婷婷久久激情| 日韩精品一区二区在| 亚洲成人av在线播放观看| 欧美日韩黄色在线观看| 亚洲精品国产精品粉嫩| 麻豆看片高清在线播放| av熟女一区二区三区| 国产高清不卡av在线| 亚洲国产精品视频自拍| 国产欧美色日韩综合在线| 宅男午夜一区二区三区| 亚洲日本韩国福利久久| 人妻免费视频中文字幕| 日本一区二区三区免费看视频| 日韩高清不卡在线视频| 久久精品少妇人妻视频| 在线观看中文字幕不卡二区| 中文字幕一区侵犯人妻| 亚洲国产日韩精品久久| 久久视热频这里只有精品| 国产国产精品人在线观看 | 日韩一二三区免费不卡视频| 亚洲av不卡一区二区在线观看| 亚洲第一中文字幕久久| 日韩亚洲欧美成人一区| 91精品免费播放在线观看| 国产一区二区三区精品久|