Druid AWS 部署中的 Ingress 与 Route53 问题
Druid AWS 部署中的 Ingress 与 Route53 问题
背景
在 AWS 上使用 Kubernetes 部署 Druid 时,通常会使用 AWS ALB(Application Load Balancer)来做流量路由与负载均衡。通过配置 Kubernetes 的 Ingress 资源,ALB 可以将流量路由到不同的服务。与此同时,还需要配置 Route 53 来处理 DNS 域名解析,使应用能够通过域名访问。
本配置示例展示了如何将 AWS ALB Ingress Controller 与 Kubernetes Ingress 资源进行关联设置。
调试
获取 ALB 证书 ARN:如果需要为 ALB 配置 SSL/TLS 证书,可以通过 AWS ACM(AWS Certificate Manager)获取证书 ARN,该证书 ARN 需要向 SRE 团队申请。该证书用于 HTTPS 配置。以下是示例配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26ingress:
name: alb-ingress-route
domain: druid-1.net
enabled: true
ingress2:
name: alb-ingress2-route
domain: druid-2.net
enabled: true
ingressClass:
enable: true
name: alb
annotations:
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:xxx
alb.ingress.kubernetes.io/subnets: sub-xxx
alb.ingress.kubernetes.io/group.name: druid
alb.ingress.kubernetes.io/healthcheck-path: /status/health
alb.ingress.kubernetes.io/healthcheck-port: "8888"
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS": 443}]'
alb.ingress.kubernetes.io/manage-backend-security-group-rules: "true"
alb.ingress.kubernetes.io/scheme: internal
alb.ingress.kubernetes.io/success-codes: "200"
alb.ingress.kubernetes.io/tags: Owner=Gary
alb.ingress.kubernetes.io/target-type: ip获取 Kubernetes Ingress 地址:通过
kubectl查询 Kubernetes 中的 Ingress 资源,获取 ALB 地址。以下是命令与输出示例:1
2
3
4bwdev get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
alb-ingress-route alb druid-1.net internal-k8s-druid-xxx.elb.amazonaws.com 80 31d
alb-ingress2-route alb druid-2.net internal-k8s-druid-xxx.elb.amazonaws.com 80 31d其中
ADDRESS字段即为 AWS ALB 的 DNS 地址,可将其作为配置 Route 53 时的记录值。修改 AWS Route 53 资源:在 AWS Route 53 中为域名配置相应的 A 记录或 CNAME 记录,确保
druid-1.net与druid-2.net域名指向 ALB 的 DNS 地址(例如:internal-k8s-druid-xxx.elb.amazonaws.com)。在 AWS Route 53 控制台中执行以下步骤:
- 创建或更新 A 记录,使其指向 ALB 的 DNS 地址。
- 按需确认域名解析配置为 Public 或 Private。
示例记录:
1
2druid-1.net A internal-k8s-druid-xxx.elb.amazonaws.com
druid-2.net A internal-k8s-druid-xxx.elb.amazonaws.com验证配置:完成 ALB 与 Route 53 配置后,可通过访问
druid-1.net与druid-2.net等域名来验证 ALB 是否能正常路由流量。
结论
通过正确配置 ALB Ingress Controller 与 Route 53,可以将流量路由到 Kubernetes 中的服务,并使用 AWS 提供的证书进行 HTTPS 加密。关键步骤包括:获取证书 ARN、查询 Ingress 地址以及更新 Route 53 配置。请确保所有资源与域名配置正确,以便能够顺利访问应用。