<p>I am trying to deploy gRPC on GKE, and I followed this tutorial - <a href="https://cloud.google.com/solutions/exposing-grpc-services-on-gke-using-envoy-proxy" rel="nofollow noreferrer">https://cloud.google.com/solutions/exposing-grpc-services-on-gke-using-envoy-proxy</a></p>
<p>I got through everything, but I do not seem to be able to run gRPC on golang, while I am able to run it on grpcurl.</p>
<p>Anyone got any ideas?</p>

<p>I solved it after exploring the inner workings of grpcurl. For anyone who might ever be stuck, here's the difference...</p>
<pre><code>// Not working...
conn, err = grpc.Dial(host, grpc.WithInsecure())

// Working...
var tlsConf tls.Config
tlsConf.InsecureSkipVerify = true
var creds = credentials.NewTLS(&amp;tlsConf)
conn, err = grpc.Dial(host, grpc.WithTransportCredentials(creds))
</code></pre>
<p>Previously I used the flag <code>grpc.WithInsecure()</code>. It didn't work, so exploring grpcurl, I found that they were using <code>grpc.WithTransportCredentials()</code> instead, with <code>tls.Config</code>, setting <code>InsecureSkipVerify</code> to true instead. That turned out well.</p>
