您好,登錄后才能下訂單哦!
本篇文章為大家展示了kubernetes容器健康檢測以及就緒檢測的過程是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
apiVersion: v1 kind: Pod metadata: name: liveness-exec spec: containers: - name: liveness-demo image: busybox args: #容器初始化執行的命令 - /bin/sh - -c - touch /tmp/healthy; sleep 10; rm -rf /tmp/healthy; sleep 600 #表示,容器一運行就創建一個文件,睡上10s,再刪除這個文件 livenessProbe: #健康檢測 exec: #ExecAction,在容器中執行特定的命令,命令退出返回0表示成功 #TCPSocketAction,根據容器IP地址及特定的端口進行TCP檢查,端口開放表示成功 #HTTPGetAction,根據容器IP、端口及訪問路徑發起一次HTTP請求,如果返回碼在200到400之間表示>成功 command: - cat - /tmp/healthy #這里用exec探測,不停探測"/tmp/healthy"是否存在,不在了就重啟
apiVersion: v1 kind: Pod metadata: name: liveness-http spec: containers: - name: liveness-http image: nginx livenessProbe: httpGet: path: /index.html #探測路徑 port: 80 scheme: HTTP initialDelaySeconds: 20 #表示容器啟動20s在,進行第一次探測 默認0s periodSeconds: 3 #表示各3s探測一次 默認10s timeoutSeconds: 1 #表示探測超時時間 默認1s successThreshold: 1 #表示重失敗到正常狀態,要連續探測1次成功就標記為正常狀態 默認1次 failureThreshold: 5 #表示重正常到失敗狀態,要連續探測5次失敗就標記為失敗狀態 默認3次
[root@localhost ~]# kubectl exec liveness-http -it -- /bin/bash
#登錄進容器
root@liveness-http:/# rm /usr/share/nginx/html/index.html
#手動刪除index.html文件完成手動觸發
kubectl describe pod liveness-exec |grep Liveness:
#運行命令查看探測狀態信息
httpGet的屬性
host:主機名或IP
scheme:鏈接類型,HTTP或HTTPS,默認為HTTP
path:請求路徑
httpHeaders:自定義請求頭
port:請求端口
apiVersion: v1 kind: Pod metadata: name: liveness-tcp spec: containers: - name: liveness-tcp image: nginx livenessProbe: tcpSocket: port: 80
apiVersion: v1 kind: Pod metadata: name: readiness-exec spec: containers: - name: readiness-exec image: nginx args: ["/bin/sh", "-c", "while true; do touch /tmp/ready; sleep 10; rm -f /tmp/ready; sleep 10; done;"] #表示創建個文件暫停10s,刪除文件暫停10s,無限循環 readinessProbe: #就緒狀態監測 exec: command: ["cat", "/tmp/ready"] initialDelaySeconds: 5 periodSeconds: 1 #該容器每10s會在正常和非正常狀態來回跳轉
readiness配置方式和liveness類似,其他探測只要修改livenessProbe改為readinessProbe即可
狀態值 描述 Pending API Server已經創建該Pod,但在無法可用node能調度或Pod內還有一個或多個容器的鏡像沒有創建,包括正在下載鏡像的過程。 Runnung Pod內所有容器均已創建,且至少有一個容器處于運行狀態、正在啟動狀態或正在重啟狀態。 Succeeded Pod內所有容器均成功執行后退出,且不會再重啟。 Failed Pod內所有容器均已退出,但至少有一個容器退出為失敗狀態。 Unknown 由于某種原因無法獲取該Pod的狀態,可能由于網絡通信不暢導致。
apiVersion: v1 kind: Pod metadata: name: liveness-exec spec: restartPolicy: Never #Always: 當容器失效時, 由kubelet自動重啟該容器,正常退出也重啟 #OnFailure: 當容器終止運行且退出碼不為0時, 由kubelet自動重啟該容器,正常退出不重啟 #Never: 不論容器運行狀態如何, kubelet都不會重啟該容器,無論是否正常退出,都不重啟 containers: - name: liveness-exec image: busybox args: - /bin/sh - -c - touch /tmp/healthy; sleep 10; rm -rf /tmp/healthy; sleep 600 livenessProbe: exec: command: - cat - /tmp/healthy
上述內容就是kubernetes容器健康檢測以及就緒檢測的過程是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。