Несколько сред на одном кластере K8s и Nginx контроллер - PullRequest
0 голосов
/ 20 апреля 2020

Мы хотим иметь кластер 1 k8s и позволить каждому разработчику развертывать свою среду, разделяя env разработчика с помощью URI "/ developerName" и NS, где каждое развертывание приложения будет развертываться на разных NS.

Приложение является устаревшим веб-приложением на основе tomcat.

Я ищу хороший подход, в котором я мог бы перенаправить трафик c каждого разработчика на основе URL-адреса для различных развертываний.

Существует 1 ограничение, когда приложение ожидает только имя приложения в URL. т.е. example.com/username/appname не работает, так как приложение ожидает только example.com/appname

Я успешно развернул входной контроллер Nginx и проверил, что он работает, когда я не использую " / developername "в пути

1 Ответ

2 голосов
/ 20 апреля 2020

Вы можете использовать входной ресурс. Настройте каждую среду с другим именем хоста:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  namespace: developer1
spec:
  rules:
    - host: developer1.mytestdomain.com
      http:
        paths:
          - backend:
              serviceName: my-tomcat-service
              servicePort: 8080
            path: /
  tls:
    - hosts:
        - developer1.mytestdomain.com
      secretName: mysslsecret

Затем настройте домен с подстановочными знаками на *.mytestdomai.com. Таким образом, вам не нужно добавлять поддомен каждый раз, когда создается среда. Пропустите часть tls, если вам не нужно https.

...