Кубернетес на AWS с несколькими путями - PullRequest
0 голосов
/ 03 мая 2020

Мой исходный код моей попытки доступен здесь: https://github.com/eln00b-learning/helm-learning

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


Я пытаюсь развернуть несколько служб на AWS EKS, используя один и тот же адрес root, но по разным путям. Я могу легко выставить их, используя разные URL-адреса с помощью внешнего балансировщика нагрузки, но у меня возникла проблема с объединением их в одну конечную точку с использованием путей. Когда я выставляю их через базовый c LoadBalancer, как это, он работает нормально, но у каждого есть свой собственный URL:

apiVersion: v1
kind: Service
metadata:
  name: sample-app1-service-external
  labels:
    environment: development
spec:
  type: LoadBalancer
  selector:
    app: sample-app1
    environment: development
  ports:
    - protocol: TCP
      port: 80
      targetPort: 5050

Я попытался настроить службу Ingress, например:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  labels:
    app: test-ingress-app
  annotations:
    # trigger the alb-ingress-controller
    kubernetes.io/ingress.class: "alb"

    # set ALB parameters
    alb.ingress.kubernetes.io/scheme: "internet-facing"
    alb.ingress.kubernetes.io/target-type: "instance"
    alb.ingress.kubernetes.io/security-groups: {{ .Values.EKS.SecurityGroups }}
    alb.ingress.kubernetes.io/subnets: {{ .Values.EKS.Subnets }}
    alb.ingress.kubernetes.io/certificate-arn: {{ .Values.EKS.CertificateARN }}
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP":80,"HTTPS": 443}]'

    # allow 404s on the health check
    alb.ingress.kubernetes.io/healthcheck-path: "/"
    alb.ingress.kubernetes.io/success-codes: "200,404"
spec:
  # forward all requests to nginx-ingress-controller
  rules:
  - http:
      paths:
      - path: /service1
        backend:
          serviceName: sample-app1-service
          servicePort: 80
      - path: /service2
        backend:
          serviceName: sample-app2-service
          servicePort: 80

Что я думаю, что я хочу против того, что могло бы быть

Это может повлечь за собой некоторое невежество с моей стороны от понимания того, как все это происходит вместе. На приведенном ниже рисунке Рисунок 1 показывает, что я пытаюсь выполнить sh, где Рисунок 2 - это еще одно представление о том, каким оно может быть.

conceptual diagram

Ссылки, которые я прочитал

...