我将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
可以解决。我将如何使用它?
答案 0 :(得分:0)
我相信默认情况下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
答案 1 :(得分:0)
您需要的是基于HTTP Host header的入口规则。
您需要在路由53上创建一个指向您的负载均衡器的CNAME记录集:cassandra.k8s.mydomain.me -> k8s.mydomain.me
然后在不指定路径的情况下创建入口规则:
spec:
rules:
- host: 'cassandra.k8s.mydomain.me'
http:
paths:
backend:
serviceName: cassandra
servicePort: 9042