{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/ingress-gce/issues/18","repository_url":"https://api.github.com/repos/kubernetes/ingress-gce","labels_url":"https://api.github.com/repos/kubernetes/ingress-gce/issues/18/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/ingress-gce/issues/18/comments","events_url":"https://api.github.com/repos/kubernetes/ingress-gce/issues/18/events","html_url":"https://github.com/kubernetes/ingress-gce/issues/18","id":264672836,"node_id":"MDU6SXNzdWUyNjQ2NzI4MzY=","number":18,"title":"Add example using grpc and http2 ","user":{"login":"bowei","id":837034,"node_id":"MDQ6VXNlcjgzNzAzNA==","avatar_url":"https://avatars1.githubusercontent.com/u/837034?v=4","gravatar_id":"","url":"https://api.github.com/users/bowei","html_url":"https://github.com/bowei","followers_url":"https://api.github.com/users/bowei/followers","following_url":"https://api.github.com/users/bowei/following{/other_user}","gists_url":"https://api.github.com/users/bowei/gists{/gist_id}","starred_url":"https://api.github.com/users/bowei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bowei/subscriptions","organizations_url":"https://api.github.com/users/bowei/orgs","repos_url":"https://api.github.com/users/bowei/repos","events_url":"https://api.github.com/users/bowei/events{/privacy}","received_events_url":"https://api.github.com/users/bowei/received_events","type":"User","site_admin":false},"labels":[{"id":712027309,"node_id":"MDU6TGFiZWw3MTIwMjczMDk=","url":"https://api.github.com/repos/kubernetes/ingress-gce/labels/help%20wanted","name":"help wanted","color":"006b75","default":true},{"id":764097650,"node_id":"MDU6TGFiZWw3NjQwOTc2NTA=","url":"https://api.github.com/repos/kubernetes/ingress-gce/labels/kind/documentation","name":"kind/documentation","color":"c7def8","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":19,"created_at":"2017-10-11T17:34:01Z","updated_at":"2018-12-17T19:45:43Z","closed_at":null,"author_association":"MEMBER","body":"_From @aledbf on December 1, 2016 22:39_\n\n\n\n_Copied from original issue: kubernetes/ingress-nginx#39_"},"comment":{"url":"https://api.github.com/repos/kubernetes/ingress-gce/issues/comments/447973977","html_url":"https://github.com/kubernetes/ingress-gce/issues/18#issuecomment-447973977","issue_url":"https://api.github.com/repos/kubernetes/ingress-gce/issues/18","id":447973977,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0Nzk3Mzk3Nw==","user":{"login":"clehene","id":101597,"node_id":"MDQ6VXNlcjEwMTU5Nw==","avatar_url":"https://avatars0.githubusercontent.com/u/101597?v=4","gravatar_id":"","url":"https://api.github.com/users/clehene","html_url":"https://github.com/clehene","followers_url":"https://api.github.com/users/clehene/followers","following_url":"https://api.github.com/users/clehene/following{/other_user}","gists_url":"https://api.github.com/users/clehene/gists{/gist_id}","starred_url":"https://api.github.com/users/clehene/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clehene/subscriptions","organizations_url":"https://api.github.com/users/clehene/orgs","repos_url":"https://api.github.com/users/clehene/repos","events_url":"https://api.github.com/users/clehene/events{/privacy}","received_events_url":"https://api.github.com/users/clehene/received_events","type":"User","site_admin":false},"created_at":"2018-12-17T19:45:43Z","updated_at":"2018-12-17T19:45:43Z","author_association":"NONE","body":"@bgetsug I was able to override the LB health check to point to the ESP http_port and the probe will see it healthy. However it gets overridden (I guess by LGBC) after a while back to the main service port (HTTP/2).\r\n\r\nI assume GLBC sets the probe to Ingress/spec/backend/servicePort and, hence, any other probe will not really work. \r\n\r\nI was not able to figure out how the health probe is set by GLBC. After shaving yaks trying to get GLBC which uses non standard vendoring paths and GoLand's stubbornness in not accepting anything else but `vendor/pkg|src` I linked everything but tests still won't run...\r\n\r\nI wonder if I could at least figure out if setting a different probe (e.g. TCP)\r\n\r\n\r\nAlso see https://benguild.com/2018/11/11/quickstart-golang-kubernetes-grpc-tls-lets-encrypt/\r\nSome options would be to inject the health check in gRPC / netty  or to mangle nginx config in some way to answer the check on http/2\r\n\r\nNow the second problem\r\n\r\nWhile the probe works, it looks like the backend over HTTP/2 won't \r\n\r\n```\r\nio.grpc.StatusRuntimeException: UNAVAILABLE: HTTP status code 502\r\ninvalid content-type: text/html; charset=UTF-8\r\nheaders: Metadata(:status=502,content-type=text/html; charset=UTF-8,referrer-policy=no-referrer,content-length=332,date=Mon, 17 Dec 2018 09:58:11 GMT,alt-svc=clear)\r\nDATA-----------------------------\r\n\r\n<html><head>\r\n<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">\r\n<title>502 Server Error</title>\r\n</head>\r\n<body text=#000000 bgcolor=#ffffff>\r\n<h1>Error: Server Error</h1>\r\n<h2>The server encountered a temporary error and could not complete your request.<p>Please try again in 30 seconds.</h2>\r\n<h2></h2>\r\n</body></html>\r\n\r\nDATA-----------------------------\r\n\tat io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:233)\r\n...\r\n```\r\n\r\nRegarding\r\n> Configuring the LB backend to use ESP's HTTP/2 port did not work. I had to enable the SSL port, mount the certs (same as the LB frontend) to the container (Deployment), and expose it via the Service. So the backend is configured for the HTTP/2 protocol, but points to ESP's SSL port.\r\n\r\nPerhaps that's because gRPC downgrades HTTP/2 to h2c?\r\nDoesn't this defeat the purpose, though? I was assuming TLS termination in GLB. Otherwise, wouldn't a TCP load balancer for 443 with a HTTP/2 enabled backend work?\r\n\r\nAlso note that while HTTP/2 is not supported, the docs mentioned it (although until a few hours the link returned a 404). \r\n\r\nI'm referring to this doc https://cloud.google.com/load-balancing/docs/https/ \r\nParticularly\r\n>If you want to configure an HTTP(S) load balancer using HTTP/2 with Google Kubernetes Engine Ingress, see HTTP/2 for Load Balancing with Ingress.\r\n\r\nhttps://cloud.google.com/kubernetes-engine/docs/how-to/ingress-http2 <- this was broken \r\n\r\nThe remaining problem is that it's likely the HTTP/2 backend will likely not downgrade to h2c as gRPC does. \r\nhttps://cloud.google.com/load-balancing/docs/backend-service#troubleshoot-HTTP2\r\n\r\n"}}
{"actor":{"display_login":"clehene"}}