首頁>Club>
5
回覆列表
  • 1 # 滿滿滿

    kubernetes的裡針對容器的健康檢查分為兩種,分別為存活探針(livenessProbe)和就緒探針(readinessProbe),定義在pod的containers的具體容器的定義裡面。存活探針用來探測容器程序是否存活,就緒探針用於確定容器是否已經就緒可以接受流量。

    1.livenessProbe

    存活探針會對容器程序的狀態做監控,檢測是否存活,如果不存活即重啟以恢復程序。探測方法有三種:

    ⑴ExecAction:

    透過執行一個預先定義的shell命令或者指令碼,若正常退出則正常,否則異常,yaml檔案中的寫法為:

    livenessProbe:

    exec:

    command:

    - cat

    - /tmp/health

    initialDelaySeconds: 5 ##容器啟動之後延遲幾秒開始檢測

    timeoutSeconds: 1 ##檢測失敗的超時時間

    failureThreshold: 3 ##幾次失敗認為重啟啟動失敗

    periodSeconds: 10 ##執行探測的頻率(以秒為單位)

    successThreshold: 1 ##探測成功的最小連續成功數

    ⑵TCPSocketAction:

    透過探測指定的埠是否開啟檢測容器是否正常,yaml檔案的寫法為:

    livenessProbe:

    tcpSocket:

    port: 80

    initialDelaySeconds: 5

    timeoutSeconds: 1

    ⑶HTTPGetAction:

    執行一個http請求探測指定的地址、埠和uri,如果其響應程式碼在200-400之間則任務成功,yaml檔案的寫法為:

    livenessProbe:

    httpGet:

    path: /

    port: 80

    scheme: HTTPS

    initialDelaySeconds: 5

    timeoutSeconds: 1

    host不指定即為pod的ip。

    2.readinessProbe

    用於探測業務邏輯是否就緒,是否準備好處理客戶端流量,如果檢測不透過會把pod的ip從對應service的endpoint列表中剔除,只有readinessProbe返回成功的才會被加入到service的轉發列表中,避免類似程序啟動但內部無法處理業務邏輯的情況。yaml檔案的寫法和livenessProbe完全相同,只是把livenessProbe替換為readinessProbe,兩者擁有相同的引數和相同的監測方式。

  • 中秋節和大豐收的關聯?
  • 對自己當下的工作不滿,怎樣突破困境?