Как я могу представить свое приложение kubernetes в хорошем доменном имени, используя вход? - PullRequest
0 голосов
/ 30 августа 2018

Я установил обе карты 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 вместо разрешения. Как бы мне заставить это работать?

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Вам нужно правило входа, основанное на заголовке HTTP Host .

Вам потребуется создать набор записей CNAME на маршруте 53, который указывает на ваш балансировщик нагрузки: cassandra.k8s.mydomain.me -> k8s.mydomain.me

Затем создайте правило входа без указания пути:

spec:
  rules:
  - host: 'cassandra.k8s.mydomain.me'
    http:
      paths:
        backend:
          serviceName: cassandra
          servicePort: 9042
0 голосов
/ 30 августа 2018

Я считаю, что по умолчанию Nginx Ingress использует порты 80 и 443. Поэтому, если вы действительно хотите использовать порт 9042 извне, вам нужно будет перенастроить свой nginx-вход

Лично мне нравится тот факт, что мой nginx-вход использует порт 80, поэтому мне никогда не нужно указывать порт.

МОНОДОМЕННЫЙ

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

Multi-Domain

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
...