Назад | Перейти на главную страницу

Нет трафика на модули EKS через ALB

Я надеюсь, что кто-то сможет указать, где я что-то напортачил с моей настройкой на AWS.

Архитектура приложения:

Кажется, все вышеперечисленное работает нормально. Я развернул приложение с помощью helm, и я вижу, что мои модули работают, могу обращаться к ним напрямую, они могут правильно взаимодействовать с базой данных / Redis, поэтому я не ДУМАЮ, что в этой части системы есть какие-либо проблемы.

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

Журналы входящего контроллера предполагают, что он работает правильно

I0802 05:46:45.130113       1 rules.go:102] default/my-app-ingress: rule 1 modified with conditions [{    Field: "path-pattern",    PathPatternConfig: {      Values: ["/*"]    }  }]
I0802 05:46:45.130576       1 recorder.go:53] kubebuilder/manager/events "level"=1 "msg"="Normal"  "message"="rule 1 modified with conditions [{    Field: \"path-pattern\",    PathPatternConfig: {      Values: [\"/*\"]    }  }]" "object"={"kind":"Ingress","namespace":"default","name":"my-app-ingress","uid":"02ce21a7-fba1-4605-9339-509bf3745538","apiVersion":"extensions/v1beta1","resourceVersion":"400603"} "reason"="MODIFY"
I0802 05:46:45.440737       1 controller.go:236] kubebuilder/controller "level"=1 "msg"="Successfully Reconciled"  "controller"="alb-ingress-controller" "request"={"Namespace":"default","Name":"my-app-ingress"}
W0802 06:38:42.924349       1 reflector.go:270] pkg/mod/k8s.io/client-go@v0.0.0-20181213151034-8d9ed539ba31/tools/cache/reflector.go:95: watch of *v1.Secret ended with: too old resource version: 400605 (410306)
I0802 06:39:54.486822       1 controller.go:236] kubebuilder/controller "level"=1 "msg"="Successfully Reconciled"  "controller"="alb-ingress-controller" "request"={"Namespace":"default","Name":"my-app-ingress"}
I0802 06:41:37.739524       1 controller.go:236] kubebuilder/controller "level"=1 "msg"="Successfully Reconciled"  "controller"="alb-ingress-controller" "request"={"Namespace":"default","Name":"my-app-ingress"}
I0802 06:41:38.149869       1 controller.go:236] kubebuilder/controller "level"=1 "msg"="Successfully Reconciled"  "controller"="alb-ingress-controller" "request"={"Namespace":"default","Name":"my-app-ingress"}

Я считаю, что мое определение входа в порядке (работало нормально, по крайней мере, при тестировании с Digital Ocean), и я добавил различные аннотации для ALB

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: my-app-ingress
  labels:
    app.kubernetes.io/component: web
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/target-type: instance
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/healthcheck-path: /healthcheck
spec:
  rules:
  - http:
      paths:
      - path: /*
        backend:
          serviceName: my-app-service
          servicePort: 3000

Моя служба - это NodePort, как того требует ALB

apiVersion: v1
kind: Service
metadata:
  name: my-app-service
  labels:
    app.kubernetes.io/component: web
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 3000
      protocol: TCP
      name: http
    - port: 443
      targetPort: 3000
      protocol: TCP
      name: https
  selector:
    app: my-app-web

Я выполнил все остальные шаги в руководстве. Узлы в target group выглядят здоровыми, нигде не видно ошибок.

Однако когда я пытаюсь подключиться к своему URL-адресу балансировщика нагрузки, я сразу получаю сбой. Нет статуса или чего-то еще, скорее, он просто не может найти URL. DNS разрешается правильно, если я попробую ping в URL-адресе он преобразуется в IP-адрес, который я могу найти в AWS, но браузер сразу же завершает работу, выдавая страницу «Мы не можем найти этот сайт», но я не вижу ответа 404 от самого сервера.

Единственное, о чем я могу думать, хотя и не уверен, - это то, что я еще не установил сертификат SSL (еще не успел). Когда я пытаюсь загрузить URL-адрес в браузере, он немедленно переключает его на запрос https, поэтому кажется, что что-то где-то запускает это переключение, поэтому возможно ли, что ALB немедленно закрывает соединение из-за отсутствия сертификата настроить?

Любые указатели в правильном направлении будут оценены или способы отладки этого, поскольку я немного потерялся в этот момент