title: kubectl - receiving PROTOCOL_ERROR when accessing GKE Clustor
body: <p>I am using Ubuntu 20.04 in WSL and running gcloud and kubectl from Ubuntu to connect to GKE cluster. When I try to list pods or any other operation, I am receiving below error for cluster-info:</p>
  <pre><code>$kubectl cluster-info dump
  I0530 23:58:41.719004    1446 log.go:184] protocol error: received *http2.GoAwayFrame before a SETTINGS frame
  Unable to connect to the server: connection error: PROTOCOL_ERROR
  
  $ kubectl version
  I0531 00:04:52.960264    1503 log.go:172] protocol error: received *http2.GoAwayFrame before a SETTINGS frame
  I0531 00:04:53.139292    1503 log.go:172] protocol error: received *http2.GoAwayFrame before a SETTINGS frame
  Client Version: version.Info{Major:&quot;1&quot;, Minor:&quot;17+&quot;, GitVersion:&quot;v1.17.17-dispatcher&quot;, GitCommit:&quot;a39a896b5018d0c800124a36757433c660fd0880&quot;, GitTreeState:&quot;clean&quot;, BuildDate:&quot;2021-01-28T21:47:26Z&quot;, GoVersion:&quot;go1.13.9&quot;, Compiler:&quot;gc&quot;, Platform:&quot;linux/amd64&quot;}
  Unable to connect to the server: connection error: PROTOCOL_ERROR
  </code></pre>
  <p>Here is OS release output:</p>
  <pre><code>$ cat /etc/os-release
  NAME=&quot;Ubuntu&quot;
  VERSION=&quot;20.04.2 LTS (Focal Fossa)&quot;
  ID=ubuntu
  ID_LIKE=debian
  PRETTY_NAME=&quot;Ubuntu 20.04.2 LTS&quot;
  VERSION_ID=&quot;20.04&quot;
  HOME_URL=&quot;https://www.ubuntu.com/&quot;
  SUPPORT_URL=&quot;https://help.ubuntu.com/&quot;
  BUG_REPORT_URL=&quot;https://bugs.launchpad.net/ubuntu/&quot;
  PRIVACY_POLICY_URL=&quot;https://www.ubuntu.com/legal/terms-and-policies/privacy-policy&quot;
  VERSION_CODENAME=focal
  UBUNTU_CODENAME=focal
  </code></pre>
  <p>GKE Version: 1.17.17-gke.4900</p>
  <p>I am able to download certificates from the cluster using the IP but not able to connect to the cluster. I tried connecting with different versions of kubectl and also tried to connect running a docker container with google-sdk and kubectl but there also I get same error.</p>
  <p>What could be the problem. I used to connect to the clusters earlier but it stopped working. Is this issue with Windows or any set up issue? Any help is much appreciated.</p>
  <p>UPDATE:
  I tried using the curl command used by kubectl. Here is the output.</p>
  <pre><code>$ curl -k -v -XGET  -H &quot;Accept: application/json, */*&quot; -H &quot;User-Agent: kubectl/v1.17.17 (linux/amd64) kubernetes/a39a89                                  [1/2466]&gt; 6&quot; 'https://CLUSTER_IP:443/version?timeout=32s'
  Note: Unnecessary use of -X or --request, GET is already inferred.
  * Uses proxy env variable no_proxy == ',*.docker.internal'
  *   Trying CLUSTER_IP:443...
  * TCP_NODELAY set
  * Connected to CLUSTER_IP (CLUSTER_IP) port 443 (#0)
  * ALPN, offering h2
  * ALPN, offering http/1.1
  * successfully set certificate verify locations:
  *   CAfile: /etc/ssl/certs/ca-certificates.crt
    CApath: /etc/ssl/certs
  * TLSv1.3 (OUT), TLS handshake, Client hello (1):
  * TLSv1.3 (IN), TLS handshake, Server hello (2):
  * TLSv1.2 (IN), TLS handshake, Certificate (11):
  * TLSv1.2 (IN), TLS handshake, Request CERT (13):
  * TLSv1.2 (IN), TLS handshake, Server finished (14):
  * TLSv1.2 (OUT), TLS handshake, Certificate (11):
  * TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
  * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
  * TLSv1.2 (OUT), TLS handshake, Finished (20):
  * TLSv1.2 (IN), TLS handshake, Finished (20):
  * SSL connection using TLSv1.2 / AES256-GCM-SHA384
  * ALPN, server accepted to use h2
  * Server certificate:
  *  subject: CN=CLUSTER_IP
  *  start date: Apr 26 22:11:53 2021 GMT
  *  expire date: Apr 25 22:11:53 2026 GMT
  *  issuer: CN=Untrusted CA - Dont Trust
  *  SSL certificate verify result: self signed certificate in certificate chain (19), continuing anyway.
  * Using HTTP2, server supports multi-use
  * Connection state changed (HTTP/2 confirmed)
  * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
  * Using Stream ID: 1 (easy handle 0x7fffca298820)
  &gt; GET /version?timeout=32s HTTP/2
  &gt; Host: CLUSTER_IP
  &gt; accept: application/json, */*
  &gt; user-agent: kubectl/v1.17.17 (linux/amd64) kubernetes/a39a89
  &gt; 6
  &gt;
  * http2 error: Remote peer returned unexpected data while we expected SETTINGS frame.  Perhaps, peer does not support HTTP/2 properly.
  * Connection #0 to host CLUSTER_IP left intact
  curl: (16) Error in the HTTP2 framing layer
  </code></pre>