{"id":2965,"date":"2018-11-09T13:36:00","date_gmt":"2018-11-09T13:36:00","guid":{"rendered":"https:\/\/www.appservgrid.com\/paw92\/?p=2965"},"modified":"2018-11-12T01:20:35","modified_gmt":"2018-11-12T01:20:35","slug":"grpc-load-balancing-on-kubernetes-without-tears-linux-com","status":"publish","type":"post","link":"https:\/\/www.appservgrid.com\/paw92\/index.php\/2018\/11\/09\/grpc-load-balancing-on-kubernetes-without-tears-linux-com\/","title":{"rendered":"gRPC Load Balancing on Kubernetes without Tears | Linux.com"},"content":{"rendered":"<p>Many new gRPC users are surprised to find that Kubernetes\u2019s default load balancing often doesn\u2019t work out of the box with gRPC. For example, here\u2019s what happens when you take a <a href=\"https:\/\/github.com\/sourishkrout\/nodevoto\">simple gRPC Node.js microservices app<\/a> and deploy it on Kubernetes:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/d33wubrfki0l68.cloudfront.net\/8ce21facff302ed07c286ea5608b6a6e04ae01b5\/931f0\/images\/blog\/grpc-load-balancing-with-linkerd\/screenshot2018-11-0116-c4d86100-afc1-4a08-a01c-16da391756dd.34.36.png\" alt=\"\" \/><\/p>\n<p>While the voting service displayed here has several pods, it\u2019s clear from Kubernetes\u2019s CPU graphs that only one of the pods is actually doing any work\u2014because only one of the pods is receiving any traffic. Why?<\/p>\n<p>In this blog post, we describe why this happens, and how you can easily fix it by adding gRPC load balancing to any Kubernetes app with <a href=\"https:\/\/linkerd.io\/\">Linkerd<\/a>, a <a href=\"https:\/\/cncf.io\/\">CNCF<\/a> service mesh and service sidecar.<\/p>\n<p>Read more at <a href=\"https:\/\/kubernetes.io\/blog\/\">Kubernetes Blog<\/a><\/p>\n<p><a href=\"\/popup\/nojs\">Click Here!<\/a><\/p>\n<p><a href=\"https:\/\/www.linux.com\/learn\/grpc-load-balancing-kubernetes-without-tears\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Many new gRPC users are surprised to find that Kubernetes\u2019s default load balancing often doesn\u2019t work out of the box with gRPC. For example, here\u2019s what happens when you take a simple gRPC Node.js microservices app and deploy it on Kubernetes: While the voting service displayed here has several pods, it\u2019s clear from Kubernetes\u2019s CPU &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.appservgrid.com\/paw92\/index.php\/2018\/11\/09\/grpc-load-balancing-on-kubernetes-without-tears-linux-com\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;gRPC Load Balancing on Kubernetes without Tears | Linux.com&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2965","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/2965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/comments?post=2965"}],"version-history":[{"count":1,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/2965\/revisions"}],"predecessor-version":[{"id":3179,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/posts\/2965\/revisions\/3179"}],"wp:attachment":[{"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/media?parent=2965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/categories?post=2965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw92\/index.php\/wp-json\/wp\/v2\/tags?post=2965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}