Problem accessing the dashboard when the cluster frontend has an internal and an external IP
See original GitHub issueFunnily enough I helped solve the problem in https://github.com/dask/dask-jobqueue/issues/71 but I now realise that the dashboard is not accessible in our SGE cluster and the ssh tunneling work-around I proposed does not cut it.
Even more fun, when I use dask-drmaa, I can access the dashboard fine (a ssh tunnel is needed of course).
Here is my current understanding:
- I run the scheduler on the cluster frontend called
sequoia
- the cluster frontend has a external IP, which is used for example when I ssh from my local machine to the frontend:
# from my local machine
$ ping sequoia
PING sequoia.paris.inria.fr (128.93.90.8) 56(84) bytes of data.
- the cluster frontend has an internal IP that is used when I am on the cluster:
# from sequoia i.e. the cluster frontend
$ ping sequoia
PING sequoia.cm.cluster (10.141.255.254) 56(84) bytes of data.
- the scheduler is using the internal IP address which means that even with ssh tunneling, the dashboard is not going to be reachable. Here is an excerpt of
client._repr_html_()
for completeness:
Scheduler: </b>tcp://10.141.255.254:57591\n
Dashboard: </b><a href=\'http://10.141.255.254:45961/status\' target=\'_blank\'>http://10.141.255.254:45961/status</a>
In some way it feels like some kind of variation of https://github.com/dask/dask-drmaa/issues/75:
- in my case (using dask-jobqueue), the internal IP is used by the scheduler so the dashboard is not accessible from the outside.
- in their case (using dask-drmaa), the external IP was used by the scheduler but this was a problem because the workers can only access the internal IP of the frontend. cc @MaxNoe in case I misunderstood something. In particular I would be very interested to see
client._repr_html_()
on their setup.
Inputs more than welcome:
- is my cluster setup quite unusual? A bit of a simplification, but changing our cluster setup is not a very likely solution.
- do we need to have the scheduler use the internal IP and the dashboard the external IP (if that is even is)?
- other things I may have missed ?
I’d be more than happy to provide more info if that can help!
Issue Analytics
- State:
- Created 5 years ago
- Comments:12 (12 by maintainers)
Top Results From Across the Web
Exposing an External IP Address to Access an Application in a ...
This page shows how to create a Kubernetes Service object that exposes an external IP address. Before you begin Install kubectl.
Read more >Kubernetes service external ip pending - nginx - Stack Overflow
I created a single node k8s cluster using kubeadm. When i tried PortForward and kubectl proxy, it showed external IP as pending.
Read more >Reserving a static internal IP address - Google Cloud
In Compute Engine, each VM instance can have multiple network interfaces. Each interface can have one external IP address, one primary internal IP...
Read more >Accessing apps - Minikube - Kubernetes
We also have a shortcut for fetching the minikube IP and a service's ... kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ......
Read more >Using a Service External IP to Get Traffic into the Cluster
Make sure you have created a range of IP addresses to use, as shown in Defining the Public IP Address Range. By setting...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Note that all of Dask’s pages use relative links and should be fine. It’s just the bokeh index that requires to be told the prefix. In practice just not showing users the index page works pretty well
On Thu, Jun 28, 2018 at 3:58 AM, jakirkham notifications@github.com wrote:
There is some misunderstanding here I believe. Command you should try: