【问题标题】:Kubernetes Backend Pods Endpoints are BLANKKubernetes 后端 Pod 端点为空白
【发布时间】:2021-05-06 10:13:02
【问题描述】:

我在 K8 1.16 版本上部署了一个 node js 应用程序。我注意到部署后后端 pod 没有注册端点,因此后端 pod 不断重启并进入 CrashLoopBackOff。

 kubectl describe svc
Name:              backend-xx-backend-svc
Namespace:         default
Labels:            <none>
Annotations:       <none>
Selector:          chart=backend-xx-backend,tier=backend
Type:              ClusterIP
IP:                192.168.246.12
Port:              <unset>  80/TCP
TargetPort:        8800/TCP
Endpoints:
Session Affinity:  None
Events:            <none>

关于后端 pod 端点为何为空白的任何建议。

【问题讨论】:

  • 如果 Pod 进入 CrashLoopBackOff,你能描述一下,用 kubectl logs 命令查看日志吗?
  • Events: Type Reason Age From Message ---- ------ ---- ---- ------- 警告 Unhealthy 13s (x1187 over 3h19m) kubelet, aks-agentpool-33316079-vmss000002 就绪探测失败:获取10.39.67.76:8800/api/health:拨打 tcp 10.39.67.76:8800:连接:连接被拒绝 - 这是我在描述中看到的

标签: kubernetes google-kubernetes-engine kubectl endpoint azure-aks


【解决方案1】:

根据评论中提到的 describe 命令的结果,Readiness 探测似乎失败了。除非 pod 处于 Ready 状态,否则 k8s 不会将流量转发到该 pod;所以可能这就是为什么服务对象中的端点是空白的,因为没有一个 pod 处于就绪状态。检查为什么准备探测,即获取 10.39.67.76:8800/api/health 失败。如果您的应用在启动时需要时间,则增加 initialDelaySeconds 或 failureThreshold of Readiness Probe 配置。

【讨论】:

  • 感谢您的建议,以及有关调试失败的健康 API 调用的最佳方法的任何指示,因为我是 K8s 的新手 :)
  • 首先尝试增加initialDelaySeconds,这意味着探针将在一段时间后启动(NodeJS应用程序(服务器)需要时间来启动)。检查 GET 调用是否在服务器启动后或之前失败,以确保我们仅在服务器准备好处理请求后才进行 GET 调用。检查容器中是否真的打开了 8800 端口。希望在此之后您将了解确切的原因。
  • Rushikesh - 感谢您的指点,我执行到 pod 并执行 - netstat -ant | grep 8800 命令不返回任何内容,这意味着该端口上没有任何内容正在侦听,是否意味着应用程序无法正常启动或端口未打开,我只是想弄清楚那里是否存在关系。
  • 如果 netstat -ant | grep 8800 没有返回任何内容,这意味着应用程序尚未在 8800 端口上打开或启动。正如您提到的 pod 不断重启,这意味着应用程序无法正常启动。使用 kubectl logs 查看 pod 日志,您可能会在应用启动阶段看到错误。如果您的容器/应用程序以非零退出代码退出,则 pod 会自行重启。您还可以使用 kubectl describe pod 命令描述您的 pod 以获取更多详细信息。
  • 您的指点帮助解决了这个问题,谢谢,由于不需要防火墙,应用程序无法连接到 Azure 中的 redis 缓存,因此禁用了防火墙让它发挥作用。
猜你喜欢
  • 2022-01-15
  • 2018-07-22
  • 2019-05-02
  • 1970-01-01
  • 2019-12-24
  • 2021-05-05
  • 2020-03-07
  • 2022-01-02
  • 1970-01-01
相关资源
最近更新 更多