国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

研發(fā)工程師玩轉(zhuǎn)Kubernetes——啟動、存活和就緒探針

這篇具有很好參考價值的文章主要介紹了研發(fā)工程師玩轉(zhuǎn)Kubernetes——啟動、存活和就緒探針。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


啟動(Startup Probe)、存活(Liveness Probe)和就緒探針(Readiness Probe)有其不同的用途和優(yōu)先級。

優(yōu)先級和用途

啟動探針(Startup Probe)用于Pod內(nèi)程序告訴kubernetes,其準備工作已經(jīng)做好。這些準備工作主要是指業(yè)務(wù)運行前的前置條件,比如資源文件下載完畢,內(nèi)置數(shù)據(jù)庫文件下載完畢等。這步完成后存活和就緒探針才會開始工作。
存活和就緒探針之間沒有關(guān)系,所以它們沒有優(yōu)先級區(qū)別,即在啟動探針確定Success后,它們兩個同時開始檢測。有任何一個失敗就會執(zhí)行其對應(yīng)的失敗處理動作。
存活探針用于表示程序是否活著。如果被認定不存活,會依據(jù)設(shè)置要么重啟容器或讓Pod調(diào)度失敗。
就緒探針表示程序是否可以提供服務(wù)。一般Pod內(nèi)程序是通過Service對外提供服務(wù),如果就緒探針失敗,Service會將該Pod摘除,這樣流量就不會打到這個不能工作的Pod上;如果就緒探針成功了,該Pod又會被加進Service。
似乎有存活和就緒探針就夠了,為什么還要啟動探針呢?因為一些準備工作我們并不知道其需要花多長時間,比如可能網(wǎng)絡(luò)帶寬問題導(dǎo)致資源文件下載很慢。這個時候設(shè)置存活或者就緒探針就可能不準確,或者導(dǎo)致其不靈敏。所以設(shè)置啟動探針可以提升其他探針的靈敏度。

啟動和存活探針

# startup_liveness.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: startup-liveness-deployment
spec:
  selector:
    matchLabels:
      app: startup-liveness
  template:
    metadata:
      labels:
        app: startup-liveness
    spec:
      containers:
      - name: startup-liveness-container
        image: busybox
        command: ["/bin/sh", "-c", "sleep 6; touch /tempdir/ready; sleep 3;touch /tempdir/keepalive; while true; do sleep 5;  done"]
        volumeMounts:
        - name:  probe-volume
          mountPath:  /tempdir
        startupProbe:
          exec:
            command:
            - cat
            - /tempdir/ready
          initialDelaySeconds: 3
          failureThreshold: 6
          periodSeconds: 1
          successThreshold: 1
        livenessProbe:
          exec:
            command:
            - cat
            - /tempdir/keepalive
          failureThreshold: 6
          periodSeconds: 1
          successThreshold: 1
      volumes:
      - name: probe-volume
        emptyDir: 
          medium: Memory
          sizeLimit: 1Gi

這段清單中的邏輯如下圖
研發(fā)工程師玩轉(zhuǎn)Kubernetes——啟動、存活和就緒探針,kubernetes,kubernetes,容器,云原生
我們使用下面指令查看中間發(fā)生的事件

kubectl describe pod 
Events:
  Type     Reason     Age               From               Message
  ----     ------     ----              ----               -------
  Normal   Scheduled  15s               default-scheduler  Successfully assigned default/startup-liveness-deployment-66f76576ff-9pnmj to ubuntub
  Normal   Pulling    15s               kubelet            Pulling image "busybox"
  Normal   Pulled     13s               kubelet            Successfully pulled image "busybox" in 2.603715682s (2.603722383s including waiting)
  Normal   Created    13s               kubelet            Created container startup-liveness-container
  Normal   Started    13s               kubelet            Started container startup-liveness-container
  Warning  Unhealthy  7s (x4 over 10s)  kubelet            Startup probe failed: cat: can't open '/tempdir/ready': No such file or directory
  Warning  Unhealthy  4s (x2 over 5s)   kubelet            Liveness probe failed: cat: can't open '/tempdir/keepalive': No such file or directory

可以看到Startup Probe在第4次檢測時,/tempdir/ready文件還沒創(chuàng)建。但是第5次時,就檢測到了它,于是進入Liveness Probe檢測狀態(tài)。這從最后兩個行為經(jīng)歷的時間差10s-5s=5s可以印證Startup Probe執(zhí)行的次數(shù)大概在4~5次之間(因為檢測周期periodSeconds是1秒)。
Liveness Probe在第2次檢測時,/tempdir/keepalive還沒創(chuàng)建。到第三次檢測時,這個標志文件就創(chuàng)建了。于是整個Pod進入了Running狀態(tài)。

啟動和就緒探針

# startup_readiness.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: startup-readiness-deployment
spec:
  selector:
    matchLabels:
      app: startup-readiness
  template:
    metadata:
      labels:
        app: startup-readiness
    spec:
      containers:
      - name: startup-readiness-container
        image: busybox
        command: ["/bin/sh", "-c", "sleep 6; touch /tempdir/ready; sleep 3;touch /tempdir/readiness; while true; do sleep 5; done"]
        volumeMounts:
        - name:  probe-volume
          mountPath:  /tempdir
        startupProbe:
          exec:
            command:
            - cat
            - /tempdir/ready
          initialDelaySeconds: 3
          failureThreshold: 6
          periodSeconds: 1
          successThreshold: 1
        readinessProbe:
          exec:
            command:
            - cat
            - /tempdir/readiness
          failureThreshold: 6
          periodSeconds: 1
          successThreshold: 1
      volumes:
      - name: probe-volume
        emptyDir: 
          medium: Memory
          sizeLimit: 1Gi

和上一節(jié)流程類似
研發(fā)工程師玩轉(zhuǎn)Kubernetes——啟動、存活和就緒探針,kubernetes,kubernetes,容器,云原生
其執(zhí)行事件如下:

Events:
  Type     Reason     Age              From               Message
  ----     ------     ----             ----               -------
  Normal   Scheduled  13s              default-scheduler  Successfully assigned default/startup-readiness-deployment-64cbcc9659-k7m5v to ubuntuc
  Normal   Pulling    13s              kubelet            Pulling image "busybox"
  Normal   Pulled     11s              kubelet            Successfully pulled image "busybox" in 2.10831058s (2.10831728s including waiting)
  Normal   Created    11s              kubelet            Created container startup-readiness-container
  Normal   Started    11s              kubelet            Started container startup-readiness-container
  Warning  Unhealthy  5s (x4 over 8s)  kubelet            Startup probe failed: cat: can't open '/tempdir/ready': No such file or directory
  Warning  Unhealthy  2s (x3 over 4s)  kubelet            Readiness probe failed: cat: can't open '/tempdir/readiness': No such file or directory

這次readiness檢測到第4次時才認定狀態(tài)為success。
上述兩個實驗可以證明:啟動探針(Startup Probe)檢測狀態(tài)是success后,存活(Liveness Probe)和就緒探針(Readiness Probe)才開始檢測。
研發(fā)工程師玩轉(zhuǎn)Kubernetes——啟動、存活和就緒探針,kubernetes,kubernetes,容器,云原生

存活和就緒探針

# liveness_readiness.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: liveness-readiness-deployment
spec:
  selector:
    matchLabels:
      app: liveness-readiness
  template:
    metadata:
      labels:
        app: liveness-readiness
    spec:
      containers:
      - name: liveness-readiness-container
        image: busybox
        command: ["/bin/sh", "-c", "sleep 3; touch /tempdir/keepalive; sleep 3;touch /tempdir/readiness; while true; do sleep 5; done"]
        volumeMounts:
        - name:  probe-volume
          mountPath:  /tempdir
        livenessProbe:
          exec:
            command:
            - cat
            - /tempdir/keepalive
          initialDelaySeconds: 3
          failureThreshold: 6
          periodSeconds: 1
          successThreshold: 1
        readinessProbe:
          exec:
            command:
            - cat
            - /tempdir/readiness
          failureThreshold: 6
          periodSeconds: 1
          successThreshold: 1
      volumes:
      - name: probe-volume
        emptyDir: 
          medium: Memory
          sizeLimit: 1Gi

通過Pod的Event可以看到,Liveness和Readiness Probe的生命長度一致(如下圖都是6秒)。

Events:
  Type     Reason     Age              From               Message
  ----     ------     ----             ----               -------
  Normal   Scheduled  10s              default-scheduler  Successfully assigned default/liveness-readiness-deployment-f6db88747-znxsm to ubuntub
  Normal   Pulling    10s              kubelet            Pulling image "busybox"
  Normal   Pulled     8s               kubelet            Successfully pulled image "busybox" in 2.092699902s (2.092706902s including waiting)
  Normal   Created    8s               kubelet            Created container liveness-readiness-container
  Normal   Started    8s               kubelet            Started container liveness-readiness-container
  Warning  Unhealthy  5s (x2 over 6s)  kubelet            Liveness probe failed: cat: can't open '/tempdir/keepalive': No such file or directory
  Warning  Unhealthy  4s (x4 over 6s)  kubelet            Readiness probe failed: cat: can't open '/tempdir/readiness': No such file or directory

探針流程

研發(fā)工程師玩轉(zhuǎn)Kubernetes——啟動、存活和就緒探針,kubernetes,kubernetes,容器,云原生文章來源地址http://www.zghlxwxcb.cn/news/detail-648111.html

到了這里,關(guān)于研發(fā)工程師玩轉(zhuǎn)Kubernetes——啟動、存活和就緒探針的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 研發(fā)工程師玩轉(zhuǎn)Kubernetes——使用Node特性定向調(diào)度Pod

    在《研發(fā)工程師玩轉(zhuǎn)Kubernetes——使用污點(taint)驅(qū)逐Pod》中我們提到親和性(affinity)中的requiredDuringSchedulingIgnoredDuringExecution,它可以定向調(diào)度Pod。本節(jié)我們將使用相關(guān)特性完成定向調(diào)度的介紹。 我們先模擬Pod被部署在Master Node上的場景。這個時候我們可以使用nodeSelector對

    2024年02月08日
    瀏覽(20)
  • 【個人介紹】后端研發(fā)工程師

    1. 熟悉JAVA基礎(chǔ)、多線程、并發(fā)編程、設(shè)計模式、數(shù)據(jù)結(jié)構(gòu)與算法、JVM原理與調(diào)優(yōu)等。 2. 熟悉SpringBoot、SpringCloud、SpringCloud Alibaba、JPA、MyBatis等框架。 3. 熟悉數(shù)據(jù)庫設(shè)計、MySQL原理與索引優(yōu)化、Redis、Memecache、MongoDB等。 4. 熟悉Nginx、主從集群、TCP/IP、NIO編程、Reactor模式、Nett

    2023年04月09日
    瀏覽(36)
  • 一些研發(fā)工程師在Springboot注意點

    一些研發(fā)工程師在Springboot注意點

    1. 正確設(shè)計代碼目錄結(jié)構(gòu) 雖然您有很大的自由度,但有一些基本規(guī)則值得遵循來設(shè)計您的源代碼結(jié)構(gòu)。 避免使用默認包。確保所有內(nèi)容(包括入口點)都在命名良好的包中,這樣您就可以避免與組裝和組件掃描相關(guān)的意外情況; 將 Application.java(應(yīng)用程序的入口類)放在頂

    2024年02月08日
    瀏覽(22)
  • 技術(shù)精英求職必備:大數(shù)據(jù)研發(fā)工程師簡歷模板

    原則 撰寫針對大數(shù)據(jù)研發(fā)工程師職位的簡歷時,關(guān)鍵在于準確展現(xiàn)您在 大數(shù)據(jù)處理、分析和應(yīng)用開發(fā)方面的綜合技能、項目經(jīng)驗和技術(shù)成就 。簡歷應(yīng)作為您展示跨多個技術(shù)棧的 編程能力、構(gòu)建完整大數(shù)據(jù)解決方案和有效解決大數(shù)據(jù)技術(shù)問題 的能力的窗口。確保每一項經(jīng)歷

    2024年02月21日
    瀏覽(26)
  • 技術(shù)精英求職必備:AIGC(圖像生成)研發(fā)工程師簡歷指南

    核心原則 撰寫針對AIGC(圖像生成)研發(fā)工程師職位的簡歷時,關(guān)鍵在于準確展現(xiàn)您在深度學(xué)習(xí)、計算機視覺和圖像生成算法方面的綜合技能、項目經(jīng)驗和技術(shù)成就。簡歷應(yīng)作為您展示跨多個技術(shù)棧的編程能力、構(gòu)建完整的圖像生成解決方案和有效解決AIGC技術(shù)問題的能力的窗口

    2024年03月25日
    瀏覽(28)
  • 【社招】【中國電信-天翼云】誠聘高級FPGA研發(fā)工程師

    【社招】【中國電信-天翼云】誠聘高級FPGA研發(fā)工程師

    基礎(chǔ)架構(gòu)部門介紹: 天翼云是中國電信旗下云計算品牌,致力于成為領(lǐng)先的云計算服務(wù)提供商。 基礎(chǔ)架構(gòu)部作為天翼云的核心部門,負責(zé)構(gòu)建天翼云的整個物理基礎(chǔ)設(shè)施。打造了包括紫金DPU、物理服務(wù)器、物理網(wǎng)絡(luò)、RDMA網(wǎng)絡(luò)、操作系統(tǒng)、虛擬化、IDC在內(nèi)的核心底座產(chǎn)品?;?/p>

    2024年02月03日
    瀏覽(27)
  • 《研發(fā)效能(DevOps)工程師》課程簡介(二)丨IDCF

    《研發(fā)效能(DevOps)工程師》課程簡介(二)丨IDCF

    為貫徹落實《關(guān)于深化人才發(fā)展體制機制改革的意見》,推動實施人才強國戰(zhàn)略,促進專業(yè)技術(shù)人員提升職業(yè)素養(yǎng)、補充新知識新技能,實現(xiàn)人力資源深度開發(fā),推動經(jīng)濟社會全面發(fā)展,根據(jù)《中華人民共和國勞動法》有關(guān)規(guī)定,工業(yè)和信息化部教育與考試中心聯(lián)合有關(guān)部門

    2024年02月07日
    瀏覽(21)
  • 博冠光電8K事業(yè)部招聘研發(fā)工程師及產(chǎn)品經(jīng)理

    一、高級結(jié)構(gòu)工程師 工作職責(zé):1、負責(zé)公司產(chǎn)品的機械結(jié)構(gòu)設(shè)計、模具開發(fā)和量產(chǎn)導(dǎo)入;2、負責(zé)機械結(jié)構(gòu)方向的技術(shù)預(yù)研,包括技術(shù)專題研究,技術(shù)難題攻關(guān);?3、負責(zé)結(jié)構(gòu)組的技術(shù)管理工作,包括帶新人,材料選型,設(shè)計審核;4、領(lǐng)導(dǎo)安排的其他工作。任職要求:1.、本

    2024年02月12日
    瀏覽(28)
  • 阿里云研發(fā)工程師劉睿:阿里云消息生態(tài)及最佳實踐

    阿里云研發(fā)工程師劉睿:阿里云消息生態(tài)及最佳實踐

    2022 年 9 月 24 日,阿里云用戶組(AUG)第 12 期活動在廈門舉辦?;顒蝇F(xiàn)場,阿里云消息中間件研發(fā)工程師劉睿,向參會企業(yè)代表分享了阿里云消息生態(tài)及最佳實踐。本文根據(jù)演講內(nèi)容整理而成。 眾所周知,消息中間件作為現(xiàn)代軟件體系中的底層基礎(chǔ)軟件,和數(shù)據(jù)庫一樣廣泛

    2023年04月09日
    瀏覽(24)
  • 突破職場競爭,引領(lǐng)未來發(fā)展:考取《研發(fā)效能(DevOps)工程師職業(yè)技術(shù)認證》

    突破職場競爭,引領(lǐng)未來發(fā)展:考取《研發(fā)效能(DevOps)工程師職業(yè)技術(shù)認證》

    就業(yè)形勢堪憂,什么最有保障?考個“國家級”證書傍身吧! 工信部教考中心作為中國領(lǐng)先的行業(yè)技能認證機構(gòu),其頒發(fā)的認證證書不僅代表了個人在信息技術(shù)領(lǐng)域的專業(yè)能力,更可以錄入工業(yè)和信息化技術(shù)技能人才數(shù)據(jù)庫,這是一個重要的信息資源平臺,它可以幫助企業(yè)和

    2024年02月05日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包