繁体   English   中英

在 aws route 53 中设置多个子域以暴露 Kubernetes

[英]Set up multiple sub domain in aws route 53 to expose Kubernetes

我在将流量路由到 k8s API 和服务时遇到了很大困难。

首先,我在 VPC 内创建了一个带有 KOPS 的集群 (k8s.buycheese.com),这样主节点和节点只能使用 SSH 从堡垒访问。

我在 namecheap (buycheese.com) 中拥有一个域,并且在 route53 中创建了一个托管区域 (k8s.buycheese.com)。 KOPS 安装集群后,它向托管区域添加了几个记录集,如api.k8s.buycheese.com

我已将托管区域的命名空间添加到我在 namecheap 中的域,以便我可以访问 Kubernetes 集群 (kubectl)。 这工作正常!

接下来,我安装了一个入口 nginx 控制器。 然后我创建了 2 个入口:

  • 一个用于公开 Kubernetes 仪表板
  • 另一个公开 nodeJS 应用程序

然后我使用入口 nginx ELB 的 URL 测试了我的 nodeJS 应用程序,我可以确认它有效! 所以我知道我的 pod 运行正常,ELB 工作正常!

但显然,我希望通过我拥有的域访问我的应用程序......

所以基本上:

我需要一个新的子域dashboard.buycheese.com来访问 Kubernetes 仪表板。

我需要buycheese.comwww.buycheese.com域来重定向到我的 nodeJS 应用程序。

好吧,为此,我在 route53 中创建了一个名为 buycheese.com 的新托管区域,并在 namecheap 中向我的域 buycheese.com 添加了 4 个新名称空间。

然后我在同一个托管区域内创建了 2 个别名 (A):

dashboard.buycheese.com别名目标:ingress nginx 的 ELB www.buycheese.com别名目标:ingress nginx 的 ELB

然后在我的 2 个入口文件中

# Dashboard
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
  name: kubernetes-dashboard-oidc
  namespace: kube-system
spec:
  rules:
  - host: dashboard.buycheese.com
    http:
      paths:
      - path: /
        backend:
          serviceName: kubernetes-dashboard-oidc
          servicePort: 80


# NodeJS App
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
  name: app
  namespace:default
spec:
  rules:
  - host: buycheese.com
    http:
      paths:
      - path: /
        backend:
          serviceName: app-service
          servicePort: 3000

总而言之,我有 2 个托管区域

1) k8s.buycheese.com 2) buycheese.com

2 托管区 buycheese.com 内的别名:

1) www.buycheese.com 2) dashboard.buycheese.com

2 入口暴露仪表板和我的应用程序

这个配置根本不行! 以下网址无法访问!

  • dashboard.buycheese.com
  • www.buycheese.com
  • buycheese.com

只有 ELB 的 URL 有效!

所以首先我想知道我的设置是否正确(显然不正确,但为什么呢?)

让所有这些 URL 公开我的服务和应用程序的正确方法是什么?

谢谢你的帮助!

我认为这里可能发生的唯一一件事是Alias Target:没有转发到 ELB。

您可以尝试改用CNAME 记录 您始终可以从命令行使用dig进行测试:

$ dig buycheese.com
$ dig www.buycheese.com
$ dig dashboard.buycheese.com

我在 Route 53 中使用 Type=A 和别名为我的 ELB DNS 名称创建了新记录集,最初也存在同样的问题,但在等待一段时间后它开始工作,这可能是 denixtry 所说的 DNS 传播问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM