通过https进行grpc-go:rpc失败错误:代码=无法使用desc =传输正在关闭:

时间:2019-05-08 13:57:26

标签: go grpc grpc-go knative-serving knative

注意:它正在Kubernetes中的容器中运行。

我已经成功完成了以下简短描述:https://knative.dev/docs/serving/samples/grpc-ping-go/

成功:

2019/05/08 13:43:56 Ping got hello - pong
2019/05/08 13:43:56 Got pong 2019-05-08 13:43:57.646935391 +0000 UTC m=+1.661567121

但是,如果我在适用于https的原始设置中从网关运行443,则无法正常工作:

docker run -ti --entrypoint=/client docker.io/{username}/grpc-ping-go \
  -server_addr="${SERVICE_IP}:443" \
  -server_host_override="${SERVICE_HOST}" \
  -insecure

2019/05/08 13:50:28 &{0xc00012e000}.Ping failed rpc error: code = Unavailable desc = transport is closing: 

示例中的client代码和server代码。 服务器没有监听tls,但是通过https与服务器的连接。

只需确保,我知道simpel hello-go文本回复中的https已经破损。

1 个答案:

答案 0 :(得分:1)

在服务器代码中,您没有监听端口443,因此很可能是您的示例无法正常工作的原因。

如果您想继续使用http而不是https,那么您的代码就可以正常工作。

如果要使其与TLS一起使用,this overview是一个很好的选择。

要使端口80重定向到端口443(如果您使用https,我强烈建议您使用它),请参阅this SO post