Подключение к сервису gRPC через kubernetes nginx - PullRequest
0 голосов
/ 15 мая 2019

Я развернул службу gRPC (образ загрузчика с весенней загрузкой) в своем локальном кластере kubernetes. Я следовал этой документации , чтобы правильно настроить манифесты развертывания, обслуживания и входа kubernetes.

Я попытался проверить свой сервис, используя grpcurl:

grpcurl -insecure fortune-teller.mydomain.cloud:443 build.stack.fortune.FortuneTeller/Predict

и запрос все еще застрял на несколько минут.

Во входных журналах (отладка включена) я вижу тайм-аут клиента:

client timed out (110: Connection timed out), client: 1.2.3.4, server: _, request: "POST /grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo HTTP/2.0", host: "fortune-teller.mydomain.cloud:443"

После 4-х тайм-аутов во входных журналах команда заканчивается на стороне клиента:

Error invoking method "build.stack.fortune.FortuneTeller/Predict": failed to query for service descriptor "build.stack.fortune.FortuneTeller": rpc error: code = Internal desc = stream terminated by RST_STREAM with error code: PROTOCOL_ERROR

Я использую nginx/1.13.12 с rancher/nginx-ingress-controller:0.16.2-rancher1 изображением.

На уровне аннотации я тестировал:

kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: "GRPC"

и

nginx.ingress.kubernetes.io/grpc-backend: "true"

и оба имеют одинаковый результат (тайм-аут).

Примечание : я обошел входное тестирование другой службы gRPC напрямую, используя службу kubernetes DNS, и она работает.

Есть идеи, что происходит не так?

1 Ответ

1 голос
/ 21 мая 2019

Я обнаружил проблему в моем входном ресурсе.

Несмотря на конфигурацию tls, конфигурация nginx не прослушивала 443. Что-то не так с моим secret

Я исправил это и перепроверил мою другую конфигурацию.

Рабочие аннотации:

metadata:
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/grpc-backend: "true"

Какие аннотации не используются в kubernetes Документация .

...