I have services defined in Kubernetes that I'd like to access from a Google Compute VM on the same network as my k8s cluster.
I've seen from this link that it is possible to ask the k8s API server how to access a service; trouble is I'm having trouble connecting to the API server:
vm2:~$ kubectl proxy &  1230 vm2:~$ curl http://localhost:8001/api/v1/namespaces/default/services/proxy/proxy I1102 09:53:25.861513 1104 logs.go:41] http: proxy error: dial tcp [::1]:8080: getsockopt: connection refused
And I see that it seems to have the wrong API server address:
vm2:~$ kubectl cluster-info Kubernetes master is running at http://localhost:8080 To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
My API server address is in fact
109.x.x.x. Specifying the API server manually gets me the right server but it claims to have no resources:
vm2:~$ kubectl -s 109.x.x.x describe pods the server doesn't have a resource type "pods"
And I get that for every resource type/command. If I run the same thing from my laptop (authenticated as myself) I see much more info about the pods, deployments and services which the cluster is running.
How do I get access from my VM to work, using my VM's service account?
Edit: forgot to mention that I've verified that my
gcloud service account is coming through correctly to the VM:
vm2:~$ gcloud auth list Credentialed Accounts ACTIVE ACCOUNT * email@example.com To set the active account, run: $ gcloud config set account `ACCOUNT`