Size: a a a

2019 July 31

HC

Hardcore Cat in Istio_ru
Andrey Afoninskiy
а с grpcurl пробовали?
Нет, не пробовал.
Но этот же сервис крутиться в другом энве (без Istio) и на обычный "curl —http2" отвечает без проблем.
источник

HC

Hardcore Cat in Istio_ru
+ есть интеграционные тесты к этому сервису.
Естественно на Istio энве падают, а на энве без истио проходят.
источник

AS

A S in Istio_ru
https://istio.io/docs/setup/kubernetes/additional-setup/requirements/ требования из первого абзаца по названию портов выполняются?
источник

HC

Hardcore Cat in Istio_ru
На сервисах проставлено имя порта с префиксом grpc-<somename>.
источник

AS

A S in Istio_ru
а в virtualservice?
источник

HC

Hardcore Cat in Istio_ru
A S
а в virtualservice?
А вот тут мог и пропустить
источник
2019 August 01

AS

A S in Istio_ru
в virtualservice никакой grpc дополнительно указывать не нужно, да и негде, это нужно для serviceentry, перепутал
источник

HC

Hardcore Cat in Istio_ru
A S
в virtualservice никакой grpc дополнительно указывать не нужно, да и негде, это нужно для serviceentry, перепутал
Это да.
В общем ещё бодаюсь с этим ишью. Имена портов сервисах проверил, containerPort в деплойменте на месте.
источник

AS

A S in Istio_ru
Hardcore Cat
Это да.
В общем ещё бодаюсь с этим ишью. Имена портов сервисах проверил, containerPort в деплойменте на месте.
попробуй на grpcbin, вот рабочий yaml со всем.
естественно, на ingress-gateway надо 82 порт добавить
apiVersion: v1
kind: Namespace
metadata:
 labels:
   istio-injection: enabled
 name: grpcbin
---
apiVersion: v1
kind: Service
metadata:
 name: grpcbin
 namespace: grpcbin
 labels:
   app: grpcbin
spec:
 ports:
 - name: grpc
   port: 82
   targetPort: 9000
 selector:
   app: grpcbin
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
 name: grpcbin
 namespace: grpcbin
spec:
 replicas: 2
 template:
   metadata:
     annotations:
       sidecar.istio.io/inject: "true"
     labels:
       app: grpcbin
       version: v1
   spec:
     containers:
     - image: moul/grpcbin
       imagePullPolicy: IfNotPresent
       name: grpcbin
       ports:
       - containerPort: 9000
         name: grpc
---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
 name: grpcbin-gateway
 namespace: grpcbin
spec:
 selector:
   istio: ingressgateway
 servers:
 - port:
     number: 82
     name: grpc
     protocol: GRPC
   hosts:
   - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
 name: grpcbin
 namespace: grpcbin
spec:
 hosts:
 - "grpcbin.dev.mesh.mydomain.ru"
 gateways:
 - grpcbin-gateway
 http:
 - match:
   route:
   - destination:
       host: grpcbin
       port:
         number: 82
источник

AS

A S in Istio_ru
как минимум, gpcurl напрямую в под должен нормально отрабатывать
$ grpcurl -plaintext pod_ip:9000 list
addsvc.Add
grpc.gateway.examples.examplepb.ABitOfEverythingService
grpc.reflection.v1alpha.ServerReflection
grpcbin.GRPCBin
hello.HelloService
источник

HC

Hardcore Cat in Istio_ru
A S
как минимум, gpcurl напрямую в под должен нормально отрабатывать
$ grpcurl -plaintext pod_ip:9000 list
addsvc.Add
grpc.gateway.examples.examplepb.ABitOfEverythingService
grpc.reflection.v1alpha.ServerReflection
grpcbin.GRPCBin
hello.HelloService
Окей сейчас попробую и отпишу.
источник

HC

Hardcore Cat in Istio_ru
Только вот смущает курл  pod_ip:9000
источник

HC

Hardcore Cat in Istio_ru
Курлить с другой поды ? или из самой grpcbin
источник

AS

A S in Istio_ru
откуда угодно, а почему смущает? запрос упрется в listener энвоя, все честно
источник

AS

A S in Istio_ru
тебе ж затраблшутить надо, сходить напрямую в под - первый этап
источник

AS

A S in Istio_ru
потом grpcurl в service ip, потом в ingressgateway с правильным заголовком Host
источник

HC

Hardcore Cat in Istio_ru
A S
как минимум, gpcurl напрямую в под должен нормально отрабатывать
$ grpcurl -plaintext pod_ip:9000 list
addsvc.Add
grpc.gateway.examples.examplepb.ABitOfEverythingService
grpc.reflection.v1alpha.ServerReflection
grpcbin.GRPCBin
hello.HelloService
По IP поды и ServiceName отработало. Через AWS ELB/IngressGateway откидывает.

Вот манифесты. Которые зааплаил
https://pastebin.com/7waNJ6ER
источник

HC

Hardcore Cat in Istio_ru
Порт правда 8082, он открыт на AWS ELB и в сервисе IngressGateway присутствует:
   -
     name: https
     nodePort: 31390
     port: 443
   -
     name: grpc
     nodePort: 30000
     port: 8082
     targetPort: 8082
источник

HC

Hardcore Cat in Istio_ru
Совсем что-то растерялся, может потому что хожу вокруг да около уже сутки.
источник

AS

A S in Istio_ru
hosts: * в virtualservice лишняя, задай нормальный host
источник