How do I connect to MongoDB NodePort service from Compass

I have an Mongo deploy on k8s which is exposed as a NodePort. The database is running on a remote Kubernetes cluster and I am trying to connect from my PC using Compass (and my private internet connection).
When I attempt to connect from Compass using the following I am getting an error connect ETIMEDOUT XXX.XXX.XXX.XXX:27017 :


I have checked the service with:

kubectl -n labs get svc
NAME              TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)           AGE
mongodb-service   NodePort   10.XXX.XXX.XXX   <none>        27017:31577/TCP   172m

and using the url mongodb://root:password@XXX.XXX.XXX:31577/TestDb?authSource=admin yields the same connect timeout error also.

The service is defined as :

apiVersion: v1
kind: Service
  name: mongodb-service
  namespace: demos
  type: NodePort
    app: mongodb
    - protocol: TCP
      port: 27017
      targetPort: 27017 

I have tried using the URL that displays in shell access as :


but I get error error-option-gssapiservicename-is-not-supported .

I am able to login and access the database from the command line ( kubectl -n demos exec -it podname -- sh ) and after login I get :

connecting to: mongodb://

My understanding is that I should be using the Node IP for my k8s cluster as something like https://XXX.XXX.XXX.XXX:31577/?compressors=disabled&gssapiServiceName=mongodb but this also complains with error Invalid scheme, expected connection string to start with “mongodb://” or "mongodb+srv://"

Using either of these URIs :


also gives an error getaddrinfo ENOTFOUND mongodb-service

What am I missing ?