我正在运行aws-eks。我正在尝试安装示例Nginx应用程序并将子域指向它。我已将aws-eks连接到现有的牧场主门户。我可以使用牧场主安装我的Nginx应用程序。它有一个服务文件和入口文件。这是我的Nginx舵表https://github.com/clayrisser/charts/tree/master/alpha/nginx
当我在网上浏览许多文档时,我看到aws-eks需要aws负载均衡器控制器,该控制器自动创建我们通过入口和服务文件指定的类型的负载均衡器,我们需要Alias指向domian。如果我们的域是根域,我们如何别名点?
我们如何才能避免为每个应用程序创建Lb。有没有一种方法可以为整个集群只创建和使用一个LB?所有应用程序都可以使用此LB?
有没有一种方法可以让elb拥有IP而不是生成的IP?
如果有更好的方法进行
我们如何才能消除为每个应用程序创建Lb。有办法吗为整个集群只创建并使用一个LB?所有应用程序都可以使用这个LB?
是的,您可以在集群中安装服务类型为LoadBalancer
的入口控制器。这将在您的帐户中创建一个LoadBalancer
。一些流行的是Nginx,Traefik,Contour等
您现在创建的入口资源可以使用注释kubernetes.io/ingress.class
使用这个入口控制器。请确保您的应用程序服务类型不是LoadBalancer
,因为它将创建一个新的LB。
有没有一种方法可以让elb拥有IP而不是生成的IP?
是的,一些云提供商(包括AWS(允许您指定loadBalancerIP。在这些情况下,负载平衡器是使用用户指定的loadBalancerIP创建的。服务应该是这样的:
apiVersion: v1
kind: Service
spec:
type: LoadBalancer
loadBalancerIP: xx.xx.xx.xx
...
但是,当您正在寻找单个LB时,您可能应该将loadBalancerIP
选项与入口控制器一起使用。例如,nginxingress控制器提供了此选项。配置看起来像:
values:
controller:
service:
loadBalancerIP: "12.234.162.41"
xxx
https://github.com/helm/charts/blob/master/stable/nginx-ingress/values.yaml#L271