![](/img/trans.png)
[英]Kubernetes: Update pod liveness probe timeoutSeconds
[英]Kubernetes , liveness probe is failing but pod in Running state
我正在嘗試用kubernetes進行藍綠色部署,我已經按照它, https: //www.ianlewis.org/en/bluegreen-deployments-kubernetes,沒關系。 我添加了一個活動探針來執行健康檢查,
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: flask-1.3
spec:
replicas: 2
template:
metadata:
labels:
name: app
version: "1.3"
spec:
containers:
- name: appflask
image: 192.168.99.100:5000/fapp:1.2
livenessProbe:
httpGet:
path: /index2
port: 5000
failureThreshold: 1
periodSeconds: 1
initialDelaySeconds: 1
ports:
- name: http
containerPort: 5000
路徑“index2”不存在,我想測試失敗的部署。 問題是我執行時:
kubectl get pods -o wide
幾秒鍾之一其中一個豆莢狀態為“RUNNING”
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
flask-1.3-6c644b8648-878qz 0/1 CrashLoopBackOff 6 6m19s 10.244.1.250 node <none> <none>
flask-1.3-6c644b8648-t6qhv 0/1 CrashLoopBackOff 7 6m19s 10.244.2.230 nod2e <none> <none>
幾秒鍾后,當一個生命失敗時,一個吊艙正在運行:
NAME READY STATUS RESTARTS AGE
IP NODE NOMINATED NODE READINESS GATES
flask-1.3-6c644b8648-878qz 1/1 Running 7 6m20s 10.244.1.250 node <none> <none>
flask-1.3-6c644b8648-t6qhv 0/1 CrashLoopBackOff 7 6m20s 10.244.2.230 nod2e <none> <none>
在運行它回到CrashLoopBackOff后,問題是,為什么如果livenesprobe總是失敗,它會在幾秒鍾內保持運行?
提前致謝
你應該看看Readiness探針 ,或者兩者都看。
准備和活性探針可以並行用於同一容器。 使用兩者可以確保流量不會到達未准備好的容器,並且容器在失敗時重新啟動。
活動探針會檢查您的應用程序是否在您已經運行的pod中處於健康狀態。
准備情況探測器將實際檢查您的pod是否已准備好接收流量。 因此,如果沒有/ index2端點,它將永遠不會顯示為正在運行
發生在你身上的是:
當您第一次啟動pod(或容器)時,它將啟動並進入“運行”狀態。 現在,如果容器中沒有進程正在運行,或者存在非連續進程(比如sleep 100),則當此進程完成時,kubernetes將考慮完成此pod。
現在,由於您有一個部署,即將保持一定數量的副本運行,它會重新創建pod。 但同樣,沒有進程在運行,所以再次完成。 這是一個無限循環。
如果要保持pod正常運行,即使內部沒有進程,也可以在yaml文件中傳遞參數tty: true
。
apiVersion: v1
kind: Pod
metadata:
name: debian
labels:
app: debian
spec:
containers:
- name: debian
image: debian
tty: true # this line will keep the terminal open
如果您在沒有tty: true
情況下運行上面的pod,那么這將會發生。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.