当前位置: 首页 > 知识库问答 >
问题:

Kubernetes集群中的活跃度和准备度探测失败——应用程序中启用了istio代理侧车注入

家弘业
2023-03-14

下面是我的应用程序头盔图表中探针的配置

{{- if .Values.endpoint.liveness }}
          livenessProbe:
            httpGet:
              host: localhost
              path: {{ .Values.endpoint.liveness | quote }}
              port: 9080
            initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
            periodSeconds: 5
{{- end }}
{{- if .Values.endpoint.readiness }}
          readinessProbe:
            httpGet:
              host: localhost
              path: {{ .Values.endpoint.readiness | quote }}
              port: 9080
            initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
            periodSeconds: 60
{{- end }}
{{- end }}

当我部署时,在部署中。亚马尔

livenessProbe:
            httpGet:
              path: /my/app/path/health
              port: 9080
              host: localhost
              scheme: HTTP
            initialDelaySeconds: 8
            timeoutSeconds: 1
            periodSeconds: 5
            successThreshold: 1
            failureThreshold: 3
          readinessProbe:
            httpGet:
              path: /my/app/path/health
              port: 9080
              host: localhost
              scheme: HTTP
            initialDelaySeconds: 5
            timeoutSeconds: 1
            periodSeconds: 60
            successThreshold: 1
            failureThreshold: 3

但在吊舱里。亚姆,是的

livenessProbe:
       httpGet:
         path: /app-health/app-name/livez
         port: 15020
         host: localhost
         scheme: HTTP
       initialDelaySeconds: 8
       timeoutSeconds: 1
       periodSeconds: 5
       successThreshold: 1
       failureThreshold: 3
     readinessProbe:
       httpGet:
         path: /app-health/app-name/readyz
         port: 15020
         host: localhost
         scheme: HTTP
       initialDelaySeconds: 5
       timeoutSeconds: 1
       periodSeconds: 60
       successThreshold: 1
       failureThreshold: 3

然后给出pod中的以下错误:

'就绪探测失败:获取超文本传输协议://IP: 15021/Health z/就绪:拨打tcp IP: 15021:连接:连接被拒绝spec.containers{istio-agent}

警告活动探测失败:获取http://localhost:15020/app-health/app-name/livez:拨打tcp127.0.0.1:15020:连接:连接被拒绝spec.containers{app-name}

警告就绪探测失败:获取http://localhost:15020/app-health/app-name/readyz:拨打tcp127.0.0.1:15020:连接:连接被拒绝spec.containers{app-name}'

为什么pod为探头使用不同的路径和端口,并且未能给出上述错误。有人能帮我解决我缺少的东西吗?

共有1个答案

丁承德
2023-03-14

得到这些不同的路径是因为这些路径是在Istio的控制平面组件(即Istio sidecar injector configmap)的网格上全局配置的。这是通过sidecar的webhook injection实现的。请参阅“istio侧车喷油器配置图”中的以下属性

SidecarInject torWebhook.rewriteAppHTTPProbe=true

 类似资料:
  • 我可以找到文件,其中提到我如何添加我的自定义探针和改变探针参数,如初始延迟等,但不能找到默认的探针方法使用的K8S。

  • 给出一个Python应用程序,它在无限循环中轮询Kafka主题,并在处理接收到的Kafka消息后将结果上传到s3 bucket。 null 并且活性探测只检查轮询循环是否尚未退出。 严格来说,在准备调查中检查这样的事情是不好的做法吗?

  • 我正在尝试设置istio1。5.1在minicube kubernetes集群中,我遵循Knative的官方文档,在不使用侧车注入的情况下设置istio。我我面临istio入口网关服务的问题,该服务将入口网关服务的外部ip显示为。我已经浏览了这里发布的其他答案,以及许多其他论坛,但没有一个对我有帮助。 使用Minikube v1.9.1与驱动=无头盔v2.16.5 kubectl v1.18.0

  • 我在我的pod上配置了一个带有二进制执行检查的readinessProbe,它连接到我正在运行的服务器(在同一个容器中),并检索一些健康信息(比如准备好流量)。 配置为readinessProbe,二进制文件无法联系我的服务器并获得所需的信息。它通过TCP套接字连接。但是当我将其配置为livenessProbe时,它可以正常工作。 配置为了让它工作,我只将类型从readinessProbe更改为l

  • 请给我一些建议。 提前致谢

  • 为了简单起见,我认为在kubernetes中最好只检查TCP端口的活跃度和就绪度,因为它不需要了解健康检查endpoint(HTTP路径),而只需要端口号。任何关于仅仅依赖TCP端口进行服务健康检查的缺点的指南都非常赞赏,请假设POD不是其他服务的代理,并且所有业务逻辑都在POD本身中。 https://kubernetes.io/docs/tasks/configure-pod-containe