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

启用网络策略时Kubernetes健康检查失败

袁亦
2023-03-14

这是我在描述吊舱时看到的:

警告不健康115s(x7超过2M55s)kubelet,准备探测失败:获取http://10.202.158.105:80/health/ready:拨号tcp 10.202.158.105:80/health/ready:连接:拒绝连接警告不健康115s(x7超过2M55s)kubelet,活跃探测失败:获取http://10.202.158.105:80/health/live:拨号tcp 10.202.158.105:80:connect:拒绝连接

如果禁用策略,健康检查将立即恢复运行。如果pod在应用网络策略之前已经健康,它将继续工作。

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-ingress-all
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  ingress:
  - from:
    - namespaceSelector: {}
    ports:
    - protocol: TCP
      port: 80
    - protocol: TCP
      port: 8080

我很难找到任何关于如何解决这个问题的指导。是否需要启用出口策略来允许库贝莱特监控吊舱的健康检查?

该吊舱运行在Azure Kubernetes服务中,使用Calico网络。

共有1个答案

姜松
2023-03-14

看起来kube-probe使用了AKS中每个pod cidr的.1地址。我相信这将是linux桥接器在代理池VM上分配的地址,因此主机选择它作为到POD的最便宜的路由。

没有这个地址的pod,所以我看不出选择器如何匹配它,除非AKS在他们的实现中有一些内置的魔力。

kubectl get pods --all-namespaces -o json \
  | jq -r '.items[] | [ .status.podIP, .metadata.name ] | join("\t")'

可以使该策略与所有pod CIDR的源代码.1IP的特定规则一起工作。

kubectl get nodes -o json \
  | jq '.items[] | [ .metadata.name, .spec.podCIDR ]'
[
  "aks-agentpool-12345678-vmss000000",
  "10.212.0.0/24"
]
[
  "aks-agentpool-12345678-vmss000001",
  "10.212.1.0/24"
]
  ingress:
  - from:
    - ipBlock:
        cidr: 10.212.0.1/32
    - ipBlock:
        cidr: 10.212.1.1/32
 类似资料:
  • 我已经在端口80上配置了一个通过apache公开的web应用程序pod。我无法配置从internet访问的服务入口。问题是后端服务总是报告为不健康。 Pod配置: 服务配置: 入口配置: 这会导致后端服务报告为不健康。 健康检查设置:

  • 我跟随http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html使用Spring Cloud构建分布式系统。 除尤里卡客户健康检查外,所有工作均按预期进行。 我有过 eureka:客户端:healthcheck:启用:true 把我的服务指向不存在的config_server,这导致 超文本传输协议://myservi

  • SOFABoot 为 Spring Boot 的健康检查能力增加了 Readiness Check 的能力。如果你需要使用 SOFA 中间件,那么建议使用 SOFABoot 的健康检查能力的扩展,来更优雅的上线应用实例 引入健康检查扩展 要引入 SOFABoot 的健康检查能力的扩展,只需要引入以下的 Starter 即可: <dependency> <groupId>com.alipay

  • 我试图在谷歌云上设置网络负载均衡器,但健康检查总是返回不健康的结果。 我给你我遵循的步骤 > 我创建了两个windows Server 2012 R2实例 我检查了端口80在这两个实例上是否对公众开放 我创建了转发规则,谷歌云给了我一个外部IP 我在两个服务器实例的网络环回接口中设置了外部IP 我创建了一个网络路由,用于转发两个实例上的流量(路由菜单) 我为169.254.169.254/32(网

  • 健康检查配置概述。 filter.http.HealthCheck filter.http.HealthCheck proto { "pass_through_mode": "{...}", "endpoint": "...", "cache_time": "{...}" } pass_through_mode (BoolValue, REQUIRED) 指定过滤器是否在传递模式下运

  • 健康检查架构概述。如果为集群配置了健康检查,则会发出相应的统计信息。详见请参考统计相关文档。 HealthCheck HealthCheck.Payload HealthCheck.HttpHealthCheck HealthCheck.TcpHealthCheck HealthCheck.RedisHealthCheck HealthCheck HealthCheck proto { "ti