Я надеюсь, что кто-то сможет указать, где я что-то напортачил с моей настройкой на AWS.
Архитектура приложения:
a
и b
Кажется, все вышеперечисленное работает нормально. Я развернул приложение с помощью 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 немедленно закрывает соединение из-за отсутствия сертификата настроить?
Любые указатели в правильном направлении будут оценены или способы отладки этого, поскольку я немного потерялся в этот момент