#grpc

/

      • noonien joined the channel
      • noonien
        hello folks
      • what's a good way of service discovery/load balancing grpc on kubernetes?
      • the recommended kubernetes method is through services, however, the grpc documentation recommends not using L4 LB
      • ejona
        You can do gRPC with L4, but you'd want to configure a max channel age on server-side.
      • Otherwise you won't re-balance across backends.
      • 0
      • noonien
        kubernetes also supports headless services, which adds mutliple A records with the same name, afaik grpc also supports that
      • how often is the dns service requeried though?
      • ejona
        Yeah. I think people have experienced problems with staleness. Yeah.
      • gRPC won't pro-actively requery.
      • noonien
        there is also https://github.com/sercand/kuberesolver but I don't see its benefits if grpc requeries the dns server
      • ah, i see
      • kuberesolver might solve my issue then, since it appears to watch for changes
      • ejona
        There is some requerying that happens, but it won't pro-actively move clients away from a server that's going down.
      • gRPC does have support for nameresolvers that provide notifications.
      • (as in, they can notify gRPC and gRPC can handle that)
      • noonien
        i've searched quite a bit, there appears to be one issue on grpc which recommends having a separate nameresolver for k8s
      • there are also some "service mesh" tools, but they just appear to be tooled L4 proxies
      • ejona
        noonien: gRPC should requery DNS when reconnecting, so maybe people simply weren't specifying a max connection age. Or maybe we need to tweak one case of gRPC.
      • Hmm... maybe it's just grpc-go that doesn't re-query on reconnect. I'll glance some.
      • I do see naming.NewDNSResolverWithFreq, which seems like it would get you most of the way.
      • noonien
        awesome, thanks for the info!
      • Tica2 joined the channel
      • lburgazzoli joined the channel
      • chin-tastic joined the channel
      • Guest31220 joined the channel
      • nathanielmanist1 has quit
      • guru_florida has quit
      • nathanielmanista has quit
      • hstefan has quit
      • Xorlev joined the channel
      • nathanielmanist1 joined the channel
      • guru_florida joined the channel
      • nathanielmanista joined the channel
      • hstefan joined the channel
      • dtzWill joined the channel
      • Guest44848 joined the channel
      • everbird joined the channel
      • torvi has quit
      • torvi joined the channel
      • noonien joined the channel
      • Tica2 joined the channel
      • Guest31220 has quit
      • Tica2 has quit
      • Tica2 joined the channel
      • rav3nn joined the channel
      • rav3nn
        hi, if I'm consuming stremaing from server and putting every element into Map one by one, should I use blocking stub or async stub ? (java)
      • rav3nn has quit
      • rav3nn joined the channel
      • lburgazzoli has quit
      • lburgazzoli joined the channel
      • lburgazzoli has quit
      • lburgazzoli[m] joined the channel
      • guru_florida has quit
      • Maxxed joined the channel
      • saurabhsood91 joined the channel
      • saurabhsood91
        Hi. I am trying to connect to a GRPC server in a Celery task, and I keep getting a FutureTimeOutError. From the python shell, the same code is able to connect to the server. I am using the grpc.channel_ready_future method. Any ideas would be helpful :)
      • ejona
        noonien: So, I talked with the Go folks. The "naming" package is the "old" API and will be going away if possible. "resolver" is the new one, and it doesn't allow specifying a polling frequency.
      • However, they're also already working on triggering re-resolutions when the connection fails (like C and Java). So after that lands (no issue or PR yet, but "soon") grpc-go+kube+DNS may be fine.
      • rav3nn joined the channel
      • rav3nn has quit
      • saurabhsood91 has quit
      • rav3nn joined the channel
      • rav3nn has quit
      • rav3nn joined the channel
      • rav3nn has quit
      • saurabhsood91 joined the channel
      • saurabhsood91 has quit