Как выставить несколько приложений в kubernetes с тем же хостом через вход - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть два независимых приложения, которые я развернул через helm, и у меня есть разные репозитории SCM. Я хотел бы выставить их оба через вход, используя Openstack Loadbalancer DNS. Моя цель - получить доступ к обоим приложениям, таким как имя хоста: 8000 для приложения 1 и имя хоста: 8080 для приложения 2.

Есть ли способ справиться с этим через traefik или kubernetes?

Приложение 1

service:
  type: NodePort
  port: 8000

networkPolicy:
  enabled: true

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: traefik
  hosts:
    - host: hostname -> just for example
      paths: [/]
  tls: []

Приложение 2

service:
  type: NodePort
  port: 8080

networkPolicy:
  enabled: true

ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: traefik
  hosts:
    - host: hostname -> just for example
      paths: [/]
  tls: []

Ответы [ 2 ]

1 голос
/ 27 февраля 2020
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: samehostexample
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.frontend.rule.type: PathPrefixStrip
spec:
  rules:
  - host: hostname.com
    http:
      paths:
      - path: /service1path
        backend:
          serviceName: service1
          servicePort: 8000
      - path: /service2path
        backend:
          serviceName: service2
          servicePort: 8080
1 голос
/ 27 февраля 2020

Если у вас один хост

apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: staging-ingress
      annotations:
        kubernetes.io/ingress.class: "nginx"
    spec:
      rules:
      - host: test.example.com
        http:
          paths:
          - path: /
            backend:service-1
              servicePort: 80
          - path: /api
            backend:
              serviceName: service-2
              servicePort: 80

Несколько хостов

spec:
  rules:
  - host: test-webapp-example.com
    http:
      paths:
        - path: /
          backend:
            serviceName: test-webapp-example
            servicePort: 80
  - host: test-another-example.com
    http:
      paths:
        - path: /
          backend:
            serviceName: test-webapp-somethingelse
            servicePort: 80
...