2017-08-22 28 views
0

我看到此錯誤在kubectl describe podNameContainer不是經由kubernetes準備探針訪問

9m  2s  118 kubelet, gke-wordpress-default-pool-2e82c1f4-0zpw spec.containers{nginx}  Warning  Unhealthy  Readiness probe failed: Get http://10.24.0.27:80/: net/http: request canceled (Client.Timeout exceeded while awaiting headers) 

容器日誌(nginx的)是下列:

10.24.1.1 - - [22/Aug/2017:11:09:51 +0000] "GET/HTTP/1.1" 499 0 "-" "Go-http-client/1.1" 

但是如果我exec的進入容器通過kubectl exec -it podName -c nginx sh,並做一個wget http://localhost我能夠成功地得到一個HTTP 200響應。以及如果我SSH進入主機(GCP計算實例),我能夠成功地獲得HTTP 200響應。

我相信在用NodePort服務替換LoadBalancer服務後不久就發生了這個問題。我想知道這是否是一些港口衝突?

有問題的服務: WordPress的-service.yaml

apiVersion: v1 
kind: Service 
metadata: 
    labels: 
    app: wordpress 
    name: wordpress 
spec: 
    type: NodePort 
    ports: 
    - port: 80 
     targetPort: 80 
     protocol: TCP 
    selector: 
    app: wordpress 

容器是Nginx的容器上的端口80

服務內容可能是哪些準備探頭的失敗原因?


如果我刪除我的配置準備探頭:

 readinessProbe: 
     httpGet: 
      path:/
      port: 80 
     initialDelaySeconds: 5 
     periodSeconds: 5 

一切工作正常,艙體能夠通過負載平衡器服務進行訪問。

回答

1

ARGHUGIHIRHHHHHH。

我一直在盯着這個錯誤,至少一天,由於某種原因,我沒有理解它。

本質上,錯誤net/http: request canceled (Client.Timeout exceeded while awaiting headers)表示容器花費的時間超過了超時時間(默認爲1秒)。