正在执行 readiness.httpGet: Readiness probe failed: No such host

问题描述 投票:0回答:0

以下 Pod 定义 成功 执行一个

readinessProbe
,它向连接到同一集群上的 Pod 的服务
service-am-i-ready
发出请求。

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: ready-if-service-ready
  name: ready-if-service-ready
spec:
  containers:
  - image: nginx:1.16.1-alpine
    name: ready-if-service-ready
    resources: {}
    livenessProbe:                                     
      exec:
        command:
        - 'true'
    readinessProbe:
      exec:
        command:
        - sh
        - -c
        - 'wget -T2 -O- http://service-am-i-ready:80'  
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

但是,如果我将

readinessProbe.exec.command
更改为
readinessProbe.httpGet
它就不再起作用了:

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: ready-if-service-ready
  name: ready-if-service-ready
spec:
  containers:
  - image: nginx:1.16.1-alpine
    name: ready-if-service-ready
    resources: {}
    livenessProbe:                                     
      exec:
        command:
        - 'true'
    readinessProbe:
      httpGet:                         # Only changed this method
        host: service-am-i-ready
        path: /
        port: 80
        scheme: HTTP 
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

这是我运行的错误消息

kubectl po describe ready-if-service-ready

Warning  Unhealty  3m10s  (x139 over 23m)  kubelet  Readiness probe  failed: Get "http://service-am-i-ready:80/": dial tcp: lookup service-am-i-ready: no such host

运行

kubectl get po ready-if-service-ready
给出:

NAME                    READY       STATUS      RESTARTS        AGE
ready-if-service-ready  0/1         Running     0               27m

为什么第一个 readinessProbe 能用,第二个不行?看起来第二个 readinessProbe 向与

wget -T2 -O- http://service-am-i-ready:80
命令相同的端点发出请求。

kubernetes kubernetes-service readinessprobe
© www.soinside.com 2019 - 2024. All rights reserved.