Настройте несколько поддоменов на AWS-маршруте 53, чтобы показать Kubernetes - PullRequest
0 голосов
/ 21 декабря 2018

У меня были большие трудности с маршрутизацией трафика на API и сервисы k8s.

Сначала я создал кластер (k8s.buycheese.com) с KOPS в частной топологии в рамках VPC, так чтоМастер и узлы доступны только из бастиона, используя SSH.

У меня есть домен в namecheap (buycheese.com), и я создал размещенную зону (k8s.buycheese.com) в route53.После того как KOPS установил кластер, он добавил пару наборов записей в размещенную зону, например api.k8s.buycheese.com.

Я добавил пространства имен размещенной зоны в свой домен в namecheap, чтобы я мог получить доступ к Kubernetes.кластера (kubectl).Это работает правильно!

Далее я установил входной контроллер nginx.Затем я создал 2 входа:

  • Один, чтобы открыть панель управления Kubernetes
  • Другой, чтобы представить приложение nodeJS

Затем я протестировал свой nodeJSПриложение, используя URL-адрес входящего nginx ELB, и я могу подтвердить, что работает!Итак, я знаю, что мои модули работают правильно и ELB работает нормально!

Но, очевидно, я хочу, чтобы мои приложения были доступны через принадлежащий мне домен ...

Итак, в основном:

Мне нужен новый поддомен dashboard.buycheese.com, чтобы попасть на панель управления Kubernetes.

И мне нужно buycheese.com и www.buycheese.com доменов для перенаправления в мое приложение nodeJS.

ХорошоДля этого я создал новую размещенную зону с именем buycheese.com на route53 и добавил 4 новых пространства имен в свой домен buycheese.com в namecheap.

Затем я создал 2 псевдонима (A)в той же самой размещенной зоне:

dashboard.buycheese.com с Alias ​​Target: входной nginx ELB www.buycheese.com с Alias ​​Target: входной 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 Ингресс, чтобы открыть панель управления и мое приложение

Эта конфигурация не работаетт все!Указанные ниже URL недоступны!

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

Только URL ELBработает!

Итак, сначала я хотел бы знать, правильны ли мои настройки (очевидно, нет, но почему?)

Как правильно сделать все эти URL-адреса, отображающие мои сервисы и приложения??

Спасибо за помощь!

1 Ответ

0 голосов
/ 21 декабря 2018

Единственное, что, я думаю, может происходить здесь, это то, что Alias Target: не пересылает на ELB.

Вы можете попробовать использовать записи CNAME вместо .Вы всегда можете проверить, используя dig из командной строки:

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