目錄:
- 1、探針的簡介
- 2、啟用探針
- 2.1、啟用就緒探針
- 2.2、啟用存活探針
- 2.3、啟用啟動探針(可選)
1、探針的簡介
在Kubernetes中,探針(Probes)是用來檢查容器健康狀況的工具,它們幫助Kubernetes了解容器的狀態。Kubernetes支持三種類型的探針:
- 就緒探針(Readiness Probe):用于判斷容器是否準備好服務請求。如果就緒探針失敗,Kubernetes不會將流量發送到該容器。
- 存活探針(Liveness
Probe):用于判斷容器是否仍然運行。如果存活探針失敗,Kubernetes會殺死該容器,并根據Pod的重啟策略決定是否重啟容器。 - 啟動探針(Startup
Probe):這是一個可選的探針,用于在容器啟動時檢查其是否已經準備好。這對于那些啟動時間較長的容器特別有用,可以防止在容器完全啟動之前就開始進行就緒和存活檢查。
2、啟用探針
你可以通過在Pod的配置文件中定義readinessProbe、livenessProbe或startupProbe來啟用這些探針。
2.1、啟用就緒探針
apiVersion: v1
kind: Pod
metadata:name: myapp-pod
spec:containers:- name: myapp-containerimage: myapp-imageports:- containerPort: 8080readinessProbe:httpGet:path: /healthzport: 8080initialDelaySeconds: 5periodSeconds: 5
2.2、啟用存活探針
apiVersion: v1
kind: Pod
metadata:name: myapp-pod
spec:containers:- name: myapp-containerimage: myapp-imageports:- containerPort: 8080livenessProbe:httpGet:path: /healthzport: 8080initialDelaySeconds: 15periodSeconds: 20
2.3、啟用啟動探針(可選)
apiVersion: v1
kind: Pod
metadata:name: myapp-pod
spec:containers:- name: myapp-containerimage: myapp-imageports:- containerPort: 8080startupProbe:httpGet:path: /startupzport: 8080failureThreshold: 30periodSeconds: 10readinessProbe:httpGet:path: /healthzport: 8080initialDelaySeconds: 5periodSeconds: 5livenessProbe:httpGet:path: /healthzport: 8080initialDelaySeconds: 15periodSeconds: 20
注意事項:
- initialDelaySeconds:在開始進行健康檢查之前等待的秒數。對于啟動探針,這是容器完全啟動之前的等待時間。對于就緒和存活探針,這是容器啟動后開始檢查前的延遲時間。
- periodSeconds:執行健康檢查的時間間隔(秒)。默認情況下,Kubernetes每10秒執行一次檢查。根據應用的需要調整這個值。
- failureThreshold:在認為容器失敗并采取行動之前,連續失敗的檢查次數。默認情況下,這是3次連續失敗。對于啟動探針,這個值通常設置得較高,因為容器啟動可能需要較長時間。
- successThreshold(可選):在認為容器成功之前連續成功的檢查次數。默認值是1,表示一次成功即可。對于啟動探針,通常不需要這個設置。
- type:可以是httpGet、tcpSocket或exec。httpGet通過HTTP
GET請求來檢查;tcpSocket通過打開一個socket來檢查;exec通過執行一個命令來檢查。根據需要選擇合適的類型。
通過正確配置這些探針,你可以有效地管理容器的健康狀態,確保應用的穩定性和可用性。