[英]Custom Health check with GCP
嗨,我嘗試對GCP LoadBalancer使用自定義運行狀況檢查。
我添加了readinessProbe
和livenessProbe
如下所示:
readinessProbe:
httpGet:
path: /health
port: dash
initialDelaySeconds: 5
periodSeconds: 1
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 10
livenessProbe:
httpGet:
path: /health
port: dash
initialDelaySeconds: 5
periodSeconds: 1
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 10
但是,當我創建自己的入口時,我沒有進行自定義健康檢查
我認為您對GCP中的資源感到困惑。
您發布的代碼與負載均衡器資源無關,因為它是對pod狀態的kubernetes健康檢查。 如果您想知道探針是否正常工作,請檢查容器的狀態,如果它沒有運行,請描述您的容器並查看日志,這應該表明探針存在問題。
我將猜測您的kubernetes配置文件中的某個地方有一個入口資源,它會像運行狀況檢查一樣創建lb及其周圍的所有資源(仍然猜測您發布的圖像與此相關)。
如果您使用的是GKE,則應保留已部署的k8s配置中的google自動資源配置,因為這可能會破壞google已經為您維護的某些功能。
我最終確定了答案。 我試圖做的事是不可能的。 我的GCE Ingress在端口80
上使用了后端。 但是在我的ReadinessProbe中,我告訴他檢查端口8080
和/health
路徑。 這是不可能的!
Ingress后端中聲明的服務端口必須與readinessProbe
中聲明的端口相同。 只有路徑可以不同 。 如果我們不遵守此模式,則它是/
與運行狀況檢查GCP路徑相關聯。
從網絡的角度來看,這是合乎邏輯的,如果我們告訴它在端口80
ReadinessProbe
由但我們的ReadinessProbe
在另一個端口上,則運行狀況檢查GCP不在Kube群集中,即使該端口關聯ReadinessProbe遇到端口80
(它必須在其上路由通信的端口)也響應。
總之,在Ingress中聲明的后端端口必須在同一端口上具有readinessProbe
。 我們唯一可以自定義的是路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.