-
-
Notifications
You must be signed in to change notification settings - Fork 148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dashboard loading slowly and hang #805
Comments
I assume
|
It seems that |
We have used It looks to me like the network connection between your machine and the Kubernetes API is not very stable given all the timeout errors in your output. Or the Kubernetes API nodes are too busy. I agree that you might want to expose an Ingress instead of using port-forwards if your k8s cluster is set up for that. However, that is out of scope for our Python API because there are just so many different ways to do it. I would recommend defining your cluster in YAML along with an appropriate Ingress and then optionally from Python use Alternatively you could change the service type to |
Taking into account that Ingress working fine, it proves that the network connection is good. Also, nodes do not perform any work at this time.
I agree that it is too specific for each cluster. I'm looking for an elegant solution for a team and avoiding the boilerplate code. Probably, creating an extra function that will create cluster-specific YAML should solve the issue.
Thanks, I will take a look into it. |
I was talking about the control plane, not the nodes. Port forwarding requires the control plane to proxy the traffic, an Ingress goes to the nodes directly.
If you want to do it in Python you could do something like this. But it's still a lot of boilerplate. import kr8s
ingress = kr8s.objects.Ingress(
{
"apiVersion": "networking.k8s.io/v1",
"kind": "Ingress",
"metadata": {"name": "cluser-scheduler", "namespace": "dask-operator"},
"spec": {
"rules": [
{
"host": "<Ask user to provide a host because it is Kubernetes setup specific value>",
"http": {
"paths": [
{
"backend": {
"service": {
"name": "cluser-scheduler",
"port": {"number": 8787},
}
},
"pathType": "ImplementationSpecific",
}
]
},
}
]
},
}
)
ingress.create() |
@jacobtomlinson, so it seems the problem is connected with containerd runtime. Recently, we migrated from docker to containerd. Probably, you are not noticing the problem because of the docker runtime. |
@dbalabka I'm not sure that's the problem. We regularly use GKE for testing which uses containerd by default. |
I tried to deploy it on the old cluster. So, my observations are following:
I probably have to use Ingress or ask to upgrade containerd version that contains: |
Actually, I was wrong. The same issue with the |
As suggested @jacobtomlinson, the problem workaround is using
|
@jacobtomlinson, it seems that in the latest version of |
Describe the issue:
The dashboard loads very slowly. Port forwarding reports timeouts and broken pipe errors during dashboard loads:
Disabling JS solve the issue. It looks like it is related to WebSockets. Adding Ingress with an HTTPS certificate solves the problem.
Minimal Complete Verifiable Example:
Anything else we need to know?:
Environment:
Required poetry packages:
K8S version:
The text was updated successfully, but these errors were encountered: