【发布时间】:2021-03-22 00:25:05
【问题描述】:
我有 5 个微服务希望允许外部流量进入。这些微服务将托管在不同的子域上。我在 EKS 上使用 K8s 集群并运行集群和其他服务。 说到 Ingress,似乎有很多困惑。我已经按照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
这是我的疑惑
- 如何配置入口以根据域重定向到不同的端口? (当我使用 Nginx 时,有一个规定是设置上游,然后 Nginx 相应地路由流量)
- 将其链接到我的注册域的过程是什么? (带有证书管理器 Lets Encrypt 的 TLS 证书)
- 我应该在我的所有子域的 DNS 记录中添加什么? (ALB 的记录/CNAME)所有 5 个子域是否都具有相同的记录/配置?
如果有帮助,我会使用 Cloudflare 进行 DNS 管理。
【问题讨论】:
标签: kubernetes microservices kubernetes-ingress amazon-eks