繁体   English   中英

如何使用Ingress在一个不错的域名中公开我的kubernetes应用程序?

[英]How can I expose my kubernetes app in a nice domain name using ingress?

我将nginx-ingress和cassandra舵图都安装到了AWS上。 我创建了Route53记录,以便可以通过一个不错的DNS名称(例如k8s.mydomain.me到达负载均衡器。

如果我使用以下规范创建入口记录:

spec:
  rules:
  - host: 
    http:
      paths:
      - path: /cassandra
        backend:
          serviceName: cassandra
          servicePort: 9042

k8s.mydomain.me/cassandra解析,但是我真正想要的是cassandra.k8s.mydomain.me:9042代替解析。 我将如何工作?

我相信默认情况下Nginx Ingress使用端口80和443。因此,如果您真的想在外部使用端口9042,则需要重新配置nginx入口

就我个人而言,我喜欢我的Nginx入口使用端口80的事实,因此我不必指定端口。

单域

spec:
  rules:
  - host: 'cassandra.k8s.mydomain.me'
    http:
      paths:
      - path: /
        backend:
          serviceName: cassandra
          servicePort: 9042

多域

spec:
  rules:
  - host: 'cassandra.k8s.mydomain.me'
    http: &cassandra_svc
      paths:
      - path: /
        backend:
          serviceName: cassandra
          servicePort: 9042
  - host: 'real.cassandra.k8s.mydomain.me'
    http: *cassandra_svc

您需要的是基于HTTP Host标头的入口规则。

您需要在路由53上创建一个指向负载均衡器的CNAME记录集: cassandra.k8s.mydomain.me -> k8s.mydomain.me

然后创建入口规则而不指定路径:

spec:
  rules:
  - host: 'cassandra.k8s.mydomain.me'
    http:
      paths:
        backend:
          serviceName: cassandra
          servicePort: 9042

暂无
暂无

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

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