如何为多个微服务设置AWS EKS应用程序负载均衡器(ALB)的Ingress



我有5个微服务,我希望允许外部流量。这些微服务将托管在不同的子域上。我在EKS上使用K8s集群,并运行集群和其他服务。当谈到英格丽丝时,似乎有很多困惑。我已经按照这个关于eksworkshop的教程配置了ALB入口控制器。这对我很有效,我能够像教程中解释的那样部署2048游戏。

现在我想要开发的是如下的Ingress资源:

# apiVersion: networking.k8s.io/v1beta1
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: cluster-ingress
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
spec:
rules:
- host: app.my-domain.com
http:
paths:
- path: /*
backend:
serviceName: app-cluster-ip-service
servicePort: 3000
- host: ms1.my-domain.com
http:
paths:
- path: /*
backend:
serviceName: ms1-cluster-ip-service
servicePort: 8000
- host: ms2.my-domain.com
http:
paths:
- path: /*
backend:
serviceName: ms2-cluster-ip-service
servicePort: 2000
- host: ms3.my-domain.com
http:
paths:
- path: /*
backend:
serviceName: ms3-cluster-ip-service
servicePort: 4000
- host: website.my-domain.com
http:
paths:
- path: /*
backend:
serviceName: website-cluster-ip-service
servicePort: 3333

所以我有疑问

  1. 如何配置ingress以重定向到基于域的不同端口?(当我使用Nginx时,有一项规定是设置Upstream,然后Nginx相应地路由流量(
  2. 将它链接到我的注册域的过程是什么?(使用证书管理器的TLS证书允许加密(
  3. 我应该在所有子域的DNS记录中放入什么?(ALB的记录/CNAME(所有5个子域名都有相同的记录/配置吗

如果有帮助的话,我会使用Cloudflare进行DNS管理。

  1. 应用程序负载均衡器使用规则将请求有条件地路由到不同的主机/路径。因此,AWS负载均衡器控制器通过注释支持该功能,有关详细信息,请参阅文档
  2. 您可以使用证书管理器来管理您的域的证书。此外,如果您使用通配符证书,AWS负载平衡器支持指定存储在ACM中的证书
  3. 是的,无论您使用的入口控制器是什么,您都必须为您的域创建多个DNS记录。您可以查看外部dns以使其自动运行

相关内容

  • 没有找到相关文章

最新更新