Once deployed, I am not able to access the service outside the prolog pods. I can run the client successfully and access the service from a client running on one of the proglog pods.
However, I am not able to access the service from the following locations:
Laptop: The client connection hangs and then returns connection error while dialing dial tcp: lookup proglog-0.proglog.mysvcs.svc.cluster.local: no such host. I am dialing using the EXTERNAL-IP address of proglog-0 from k8s in the client (This address works when used from a proglog pod).
From a pod in the k8s cluster but not a proglog pod. It prints the following error repeatedly ERROR: 2020/10/31 18:59:29 [core] subconn returned from pick is not *acBalancerWrapper. Also, the acBalancerWrapper error appears when running the client from a proglog pod (where it usually works) from time to time.
Anyone faced this before, ideas?
At the moment I’m looking into GetServers returning the K8s DNS names (e.g. proglog-0.proglog.default.svc.cluster.local:8400 rather than the EXTERNAL-IP of the pods.
For 1. did you port-forward the pod/service to expose it outside k8s’ network? That’s what the $ kubectl port-forward pod/proglog-0 8400 8400 command in the book is for.
Could be because leader election is still underway so a nil subconn is returned for it.
I’m not able to get the load balancing picker to work when in GCP, however, it works when i Port forward.
I’ve tried using the following:
Pod IP (results in a hang)
Load balancer CLUSTER-IP:8400 address as allocated by the service (results in a timeout)
Load balancer EXTERNAL-IP:8400 address as allocated by the service (results in a hang)
Using the bind address: $HOSTNAME.proglog.{{.Release.Namespace}}.svc.cluster.local:{{.Values.rpcPort}} from a different service pod in the cluster (results in an error: subconn returned from pick is not *acBalancerWrapper)