我有一个EKS集群,其中aws-alb-ingress-controller控制着指向EKS集群的AWS ALB的设置。
在其中一个部署的滚动更新之后,应用程序失败,导致Pod
永不启动(窗格处于状态CrashLoopBackOff
内)。但是,Pod
的先前版本仍在运行。但似乎该服务的状态仍然不正常:
这意味着现在所有流量都重定向到默认后端,即另一种服务。在这种情况下,在Kubernetes中,用于部署的相关服务的类型为NodePort
:
Type: NodePort
IP: 172.20.186.130
Port: http-service 80/TCP
TargetPort: 5000/TCP
NodePort: http-service 31692/TCP
Endpoints: 10.0.3.55:5000
是什么导致端点变得不健康?我希望它可以将流量重定向到仍在运行的旧版本Pod
。有什么方法可以确保终点保持健康?
答案 0 :(得分:0)
问题在于,尽管在Kubernetes中应用程序运行状况良好,但ALB负载平衡器执行了自己的运行状况检查。默认情况下,此运行状况检查已配置为期望来自git symbolic-ref --short HEAD
端点的200
响应,但是对于此特定应用程序,它没有在该端点上返回/
响应。
由于ALB是由alb-ingress-controller控制的,因此我在入口处添加了注释以配置正确的路径:200
。由于我们正在使用Spring Microservices,因此该端点适用于我们所有的应用程序。