如何使用kubeadm将AWS Load Balancer与部署在EC2上的Kubernetes连接到nginx入口控制器?

时间:2018-07-18 07:26:28

标签: kubernetes kubeadm aws-elb

我已经使用kubeadm在AWS上安装了Kubernetes Cluster。我知道它将不属于AWS部署范围。我正在尝试遵循安装Kubernetes的裸机方式。

Nodeport一切正常,我想知道是否可以将AWS Load Balancer连接到此设置,如果可以,怎么办?

我已经在网上进行了详尽的研究,找到了该解决方案,可以在其中指定服务的外部IP地址。但是,负载均衡器没有IP地址。

我正在使用Nginx Ingress Controller,在ClusterIP上一切正常,如何使用AWS Load Balancer公开应用程序?

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

使用以下方法将 aws-load-balancer 与在 EC2 上创建/运行的 kubernetes 集群中运行的 nginx-ingress-controller 集成

第一步:设置/安装“nginx-ingress-controller”

第 2 步:创建一个额外的服务,使用 NodePort 在修复端口上公开“nginx-ingress-controller”。请参阅下面以黄色突出显示的屏幕截图

nginx-ingress-controller external service as NodePort Kubernetes

如果您使用 helm 在“kube-system”命名空间中安装了“nginx-ingress-controller”,则用于向外部公开“nginx-ingress-controller”的额外服务将如下所示

Helm list of nginx-ingress-controller

Extra Service to expose nginx-ingress-controller externally on NodePort

第 3 步:转到 Load Balancers Section in EC2 from AWS Console

然后创建负载均衡器,为了简单,选择“经典负载均衡器的创建按钮”

AWS Classic Load Balancer setup

设置端口和协议配置如下

AWS Classic load balancer Ports and Protocol Configuration

然后分配您的安全组,为实例配置健康检查,

最后从列表中添加您的集群实例,添加标签,最后查看并单击 创建完成。

访问LB的DNS Name,你会发现你的“nginx-ingress-controller”暴露了。