Мое приложение .NET развернуто в кластере EKS, вход которого определен со следующими соответствующими аннотациями.
kubernetes.io/ingress.class: альб
alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS-1-2-2017-01
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP":80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/scheme: выход в интернет
alb.ingress.kubernetes.io/целевой тип: ip
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": " HTTP_301"}}'
alb.ingress.kubernetes.io/healthcheck-path: "/swagger/v1/swagger.json"
alb.ingress.kubernetes.io/backend-протокол-версия: HTTP2
Мое приложение отлично развертывается в кластере, все проверки работоспособности проходят, а модули находятся в рабочем состоянии. Однако, когда я запрашиваю конечную точку входа с запросом GRPC, я получаю сообщение об ошибке, как показано ниже вкратце.
Необработанное исключение: System.Reflection.TargetInvocationException: цель вызова сгенерировала исключение.
---> Grpc.Core.RpcException: Status(StatusCode="Unreachable", Detail="Ошибка при запуске вызова gRPC. HttpRequestException: произошла ошибка при отправке запроса. IOException: запрос был прерван. Http2ConnectionException: сервер HTTP/2 отправлены недопустимые данные о соединении. Код ошибки HTTP/2 'PROTOCOL_ERROR' (0x1).", DebugException="System.Net.Http.HttpRequestException: Произошла ошибка при отправке запроса.
Я уверен, что с рассматриваемым запросом нет проблем, потому что, когда я выполняю переадресацию портов на одном из портов и попадаю в конечную точку localhost: 5000, я получаю желаемый результат.
Я проверил балансировщик нагрузки и целевые группы в консоли AWS, и они находятся в исправном состоянии. Однако отображение панели мониторинга увеличивает количество ELB 4xx каждый раз, когда я обращаюсь к конечной точке. Я уверен, что есть проблема на уровне входа, но я не могу понять, что именно.
Не уверен, что мне здесь не хватает или что-то не так с моей настройкой. Но поскольку перенаправление портов работает должным образом, это должно быть проблемой с LoadBalancer.
Для справки, я попытался изменить версию внутреннего протокола на GRPC, что не помогает.