1. 程式人生 > >Docker Kubernetes 健康檢查

Docker Kubernetes 健康檢查

如果 dex lap display ima spl sock port nta

Docker Kubernetes 健康檢查

提供Probe探測機制,有以下兩種類型:

  • livenessProbe:如果檢查失敗,將殺死容器,然後根據Pod的重啟策略來決定是否重啟。
  • readinessProbe:如果檢查失敗,Kubernetes會把Pod從服務代理的分發後端剔除。

Probe支持以下三種檢查方法:

  • httpGet
  • 發送HTTP請求,返回200-400範圍狀態碼為成功。
  • exec
  • 執行Shell命令返回狀態碼是0為成功。
  • tcpSocket
  • 發起TCP Socket建立成功。

環境:

  • 系統:Centos 7.4 x64
  • Docker版本:18.09.0
  • Kubernetes版本:
    v1.8
  • 管理節點:192.168.1.79
  • 工作節點:192.168.1.78
  • 工作節點:192.168.1.77

創建yaml文件

vim check.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.10
    ports:
    - containerPort: 80
    livenessProbe:
      httpGet:
        path: 
/index.html port: 80
技術分享圖片
# api版本
apiVersion: v1
# 指定創建資源對象
kind: Pod
# 源數據、可以寫name,命名空間,對象標簽
metadata:
# 服務名稱
  name: nginx-pod
# 標簽
  labels:
# 標簽名
    app: nginx 
# 容器資源信息
spec:
# 容器管理
  containers:
# 容器名稱
  - name: nginx
# 容器鏡像
    image: nginx:1.10
# 端口管理
    ports:
# 指定暴露端口
    - containerPort: 80
#
健康檢查模式(httpGet、exec、tcpSocket) livenessProbe: # 選擇健康檢查類型 httpGet: # 選擇檢查文件 path: /index.html # 選擇檢查暴露端口 port: 80
文件註釋

創建Pod

kubectl create -f check.yaml
技術分享圖片
命令:kubectl describe pods nginx-pod

# 探測端口為80,探測文件名index.html,timeout超市時間為一秒,period每10秒探測一次
    Liveness:       http-get http://:80/index.html delay=0s timeout=1s period=10s #success=1 #failure=3
查看健康檢查pod狀態

Docker Kubernetes 健康檢查