I'm running dask in minikube using a helm release. The only change that I made to the default configuration was to set the serviceType on the scheduler to NodePort, since I believe that minikube doesn't support LoadBalancer services (and no external IPs are published). This is what my helm status output looks like:
RESOURCES:
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
solemn-garfish-scheduler-fff8d4cfc-gqrbk 1/1 Running 0 39m
solemn-garfish-worker-86d9b6765d-5drwk 1/1 Running 0 39m
solemn-garfish-worker-86d9b6765d-9xnr2 1/1 Running 0 39m
solemn-garfish-worker-86d9b6765d-znj9c 1/1 Running 0 39m
==> v1/ConfigMap
NAME DATA AGE
solemn-garfish-jupyter-config 1 39m
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
solemn-garfish-jupyter LoadBalancer 10.110.50.76 <pending> 80:32229/TCP 39m
solemn-garfish-scheduler NodePort 10.98.5.177 <none> 8786:32595/TCP,80:30254/TCP 39m
==> v1beta1/Deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
solemn-garfish-jupyter 0 0 0 0 39m
solemn-garfish-scheduler 1 1 1 1 39m
solemn-garfish-worker 3 3 3 3 39m```
In [1]: from dask.distributed import Client
In [2]: c = Client("tcp://192.168.99.101:32595")
distributed.utils - ERROR - in <closed TCP>: Stream is closed: while trying to call remote method 'identity'
Traceback (most recent call last):
File "/Users/steven/predata/venv/lib/python2.7/site-packages/distributed/utils.py", line 238, in f
result[0] = yield make_coro()
File "/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.py", line 1055, in run
value = future.result()
File "/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/concurrent.py", line 238, in result
raise_exc_info(self._exc_info)
File "/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.py", line 1063, in run
yielded = self.gen.throw(*exc_info)
File "/Users/steven/predata/venv/lib/python2.7/site-packages/distributed/client.py", line 741, in _start
yield self._ensure_connected(timeout=timeout)
File "/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.py", line 1055, in run
value = future.result()
File "/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/concurrent.py", line 238, in result
raise_exc_info(self._exc_info)
File "/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.py", line 1063, in run
yielded = self.gen.throw(*exc_info)
File "/Users/steven/predata/venv/lib/python2.7/site-packages/distributed/client.py", line 779, in _ensure_connected
yield self._update_scheduler_info()
File "/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.py", line 1055, in run
value = future.result()
File "/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/concurrent.py", line 238, in result
raise_exc_info(self._exc_info)
File "/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.py", line 1063, in run
yielded = self.gen.throw(*exc_info)
File "/Users/steven/predata/venv/lib/python2.7/site-packages/distributed/client.py", line 804, in _update_scheduler_info
self._scheduler_identity = yield self.scheduler.identity()
File "/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.py", line 1055, in run
value = future.result()
File "/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/concurrent.py", line 238, in result
raise_exc_info(self._exc_info)
File "/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.py", line 1063, in run
yielded = self.gen.throw(*exc_info)
File "/Users/steven/predata/venv/lib/python2.7/site-packages/distributed/core.py", line 467, in send_recv_from_rpc
% (e, key,))
CommClosedError: in <closed TCP>: Stream is closed: while trying to call remote method 'identity'
---------------------------------------------------------------------------
CommClosedError Traceback (most recent call last)
<ipython-input-2-5c2e8e76598c> in <module>()
----> 1 c = Client("tcp://192.168.99.101:32595")
/Users/steven/predata/venv/lib/python2.7/site-packages/distributed/client.pyc in __init__(self, address, loop, timeout, set_as_default, scheduler_file, security, asynchronous, name, **kwargs)
553 io_loop=self.loop)
554
--> 555 self.start(timeout=timeout)
556
557 from distributed.recreate_exceptions import ReplayExceptionClient
/Users/steven/predata/venv/lib/python2.7/site-packages/distributed/client.pyc in start(self, **kwargs)
668 self._started = self._start(**kwargs)
669 else:
--> 670 sync(self.loop, self._start, **kwargs)
671
672 def __await__(self):
/Users/steven/predata/venv/lib/python2.7/site-packages/distributed/utils.pyc in sync(loop, func, *args, **kwargs)
252 e.wait(1000000)
253 if error[0]:
--> 254 six.reraise(*error[0])
255 else:
256 return result[0]
/Users/steven/predata/venv/lib/python2.7/site-packages/distributed/utils.pyc in f()
236 yield gen.moment
237 thread_state.asynchronous = True
--> 238 result[0] = yield make_coro()
239 except Exception as exc:
240 logger.exception(exc)
/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.pyc in run(self)
1053
1054 try:
-> 1055 value = future.result()
1056 except Exception:
1057 self.had_exception = True
/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/concurrent.pyc in result(self, timeout)
236 if self._exc_info is not None:
237 try:
--> 238 raise_exc_info(self._exc_info)
239 finally:
240 self = None
/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.pyc in run(self)
1061 if exc_info is not None:
1062 try:
-> 1063 yielded = self.gen.throw(*exc_info)
1064 finally:
1065 # Break up a reference to itself
/Users/steven/predata/venv/lib/python2.7/site-packages/distributed/client.pyc in _start(self, timeout, **kwargs)
739 self.scheduler_comm = None
740
--> 741 yield self._ensure_connected(timeout=timeout)
742
743 for pc in self._periodic_callbacks:
/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.pyc in run(self)
1053
1054 try:
-> 1055 value = future.result()
1056 except Exception:
1057 self.had_exception = True
/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/concurrent.pyc in result(self, timeout)
236 if self._exc_info is not None:
237 try:
--> 238 raise_exc_info(self._exc_info)
239 finally:
240 self = None
/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.pyc in run(self)
1061 if exc_info is not None:
1062 try:
-> 1063 yielded = self.gen.throw(*exc_info)
1064 finally:
1065 # Break up a reference to itself
/Users/steven/predata/venv/lib/python2.7/site-packages/distributed/client.pyc in _ensure_connected(self, timeout)
777 comm = yield connect(self.scheduler.address, timeout=timeout,
778 connection_args=self.connection_args)
--> 779 yield self._update_scheduler_info()
780 yield comm.write({'op': 'register-client',
781 'client': self.id,
/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.pyc in run(self)
1053
1054 try:
-> 1055 value = future.result()
1056 except Exception:
1057 self.had_exception = True
/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/concurrent.pyc in result(self, timeout)
236 if self._exc_info is not None:
237 try:
--> 238 raise_exc_info(self._exc_info)
239 finally:
240 self = None
/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.pyc in run(self)
1061 if exc_info is not None:
1062 try:
-> 1063 yielded = self.gen.throw(*exc_info)
1064 finally:
1065 # Break up a reference to itself
/Users/steven/predata/venv/lib/python2.7/site-packages/distributed/client.pyc in _update_scheduler_info(self)
802 @gen.coroutine
803 def _update_scheduler_info(self):
--> 804 self._scheduler_identity = yield self.scheduler.identity()
805
806 def __enter__(self):
/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.pyc in run(self)
1053
1054 try:
-> 1055 value = future.result()
1056 except Exception:
1057 self.had_exception = True
/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/concurrent.pyc in result(self, timeout)
236 if self._exc_info is not None:
237 try:
--> 238 raise_exc_info(self._exc_info)
239 finally:
240 self = None
/Users/steven/predata/venv/lib/python2.7/site-packages/tornado/gen.pyc in run(self)
1061 if exc_info is not None:
1062 try:
-> 1063 yielded = self.gen.throw(*exc_info)
1064 finally:
1065 # Break up a reference to itself
/Users/steven/predata/venv/lib/python2.7/site-packages/distributed/core.pyc in send_recv_from_rpc(**kwargs)
465 except (RPCClosed, CommClosedError) as e:
466 raise e.__class__("%s: while trying to call remote method %r"
--> 467 % (e, key,))
468
469 self.comms[comm] = True # mark as open
CommClosedError: in <closed TCP>: Stream is closed: while trying to call remote method 'identity'
I'm completely stumped. Has anyone experienced something like this before?