Как развернуть несколько приложений внешнего интерфейса в одном кластере kubernetes только с одним именем хоста - PullRequest
3 голосов
/ 06 ноября 2019

У меня есть 3 угловых приложения, которые развернуты в Kubernetes. Я пытаюсь запустить все 3 с одним именем хоста и разными путями. Вот мой вход.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$1
  name: test-ingress-deployment
  namespace: my-namespace
spec:
  tls:
  - hosts:
    - dns-name.eastus.cloudapp.azure.com
    secretName: aks-ingress-tls
  rules:
  - host: dns-name.eastus.cloudapp.azure.com
    http:
      paths:
      - backend:
          serviceName: ui-svc
          servicePort: 80
        path: /(.*)
      - backend:
          serviceName: ui-svc-one
          servicePort: 80
        path: /one/?(.*)
      - backend:
          serviceName: ui-svc-two
          servicePort: 80
        path: /two/?(.*)

Все эти 3 службы находятся в разных пространствах имен. Я получаю 503 за каждую конечную точку, которую пытаюсь достичь, после применения входа.

1 Ответ

1 голос
/ 06 ноября 2019

Документация по этому поводу недостаточна, по крайней мере, я не смог найти что-то, кроме проблем с Github, которые пролили немного света на эту проблему. Но, насколько я знаю, в K8s намеренно избегали перекрестного доступа к пространству имен, это было бы основным источником атак на повышение привилегий.

Насколько мне известно, у вас есть два варианта:

  1. Вы можете запустить свой входной и входной контроллер в пространстве имен kube-system. Но это не рекомендуется, поскольку kube-system предназначено только для компонентов K8s и, скорее всего, создает проблемы безопасности.
  2. Вы можете иметь вход в пространство имен, в котором находится ваша служба. Но тогда вам нужен контроллер входа, которыйпозволяет объединять правила, которые не все поддерживают afaik.

Возможно, есть и другие решения, может быть, кто-то с более глубокими знаниями K8s сможет пролить больше света на это.

...