在多节点EKS集群中部署Ingress Nginx控制器ELB

Jér*_*eau 6 amazon-elb kubernetes kubernetes-ingress amazon-eks nginx-ingress

我目前正在尝试在我的 AWS eks 集群上部署 NGINX Ingress Controller。我有 4 个节点正在运行:

NAME                            STATUS   ROLES    AGE     VERSION
ip-10-230-35-48.ec2.internal    Ready    <none>   7h44m   v1.19.6-eks-49a6c0
ip-10-230-39-9.ec2.internal     Ready    <none>   7h42m   v1.19.6-eks-49a6c0
ip-10-230-42-241.ec2.internal   Ready    <none>   7h49m   v1.19.6-eks-49a6c0
ip-10-230-49-228.ec2.internal   Ready    <none>   7h46m   v1.19.6-eks-49a6c0
Run Code Online (Sandbox Code Playgroud)

我正在ingress-nginx-controller使用NGINX Ingress Controller 安装指南并使用deploy-tls-termination.yaml来部署我的

由于某些原因,AWSELB没有将所有节点标记为健康并给出以下错误:

Instance has failed at least the UnhealthyThreshold number of health checks consecutively.
Run Code Online (Sandbox Code Playgroud)

唯一标记为健康的节点是部署的节点ingress-nginx-controller在此输入图像描述

我的 yaml 配置文件中是否缺少某些内容?或者我应该为每个部署ingress-nginx-controller一个Availibity Zone?如果是这样,怎么办?

谢谢

ozl*_*vka 0

实际上是根据入口控制器和ELB的实现。ELB 只能识别运行入口控制器 Pod 的节点。其余节点已停止服务。如果 ingress-controller pod 将被删除到另一个节点,那么 ELB 会将该节点识别为 InService 实例。您可以通过删除控制器盒来尝试此操作。

建议将 NLB 或 ALB 负载均衡器与入口控制器结合使用。从 k8s 1.18 版本开始,NLB 将默认用于入口负载均衡器。尝试本教程来更改负载均衡器类型。