У меня были большие трудности с маршрутизацией трафика на 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-адреса, отображающие мои сервисы и приложения??
Спасибо за помощь!