<p>Why does the following error occur when I install <code>Linkerd 2.x</code> on a private cluster in GKE?</p>

<pre><code>Error: could not get apiVersions from Kubernetes: unable to retrieve the complete list of server APIs: tap.linkerd.io/v1alpha1: the server is currently unable to handle the request
</code></pre>

<p><strong>Solution:</strong></p>
<p>The steps I followed are:</p>
<ol>
<li><p><code>kubectl get apiservices</code> : If linkered apiservice is down with the error CrashLoopBackOff try to follow the step 2 otherwise just try to restart the linkered service using kubectl delete apiservice/&quot;service_name&quot;. For me it was v1alpha1.tap.linkerd.io.</p>
</li>
<li><p><code>kubectl get pods -n kube-system</code> and found out that pods like metrics-server, linkered,  kubernetes-dashboard are down because of the main coreDNS pod was down.</p>
</li>
</ol>
<p>For me it was:</p>
<pre><code>NAME                          READY   STATUS             RESTARTS   AGE
pod/coredns-85577b65b-zj2x2   0/1     CrashLoopBackOff   7          13m
</code></pre>
<ol start="3">
<li>Use kubectl describe pod/&quot;pod_name&quot; to check the error in coreDNS pod and if it is down because of <code>/etc/coredns/Corefile:10 - Error during parsing: Unknown directive proxy</code>, then we need to use forward instead of proxy in the yaml file where coreDNS config is there. Because CoreDNS version 1.5x used by the image does not support the proxy keyword anymore.</li>
</ol>
