我在kubectl describe podName
中看到了这个错误:
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"
但是,如果我通过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
一切正常,可以通过LoadBalancer服务访问pod。
答案 0 :(得分:3)
ARGHUGIHIRHHHHHH。
至少一天我一直在盯着这个错误,出于某种原因,我不理解它。
基本上错误net/http: request canceled (Client.Timeout exceeded while awaiting headers)
表示容器比超时时间(默认值为1秒)花费的时间更长。