Skip to content
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

Why CHP replicas is 1 and non configurable? #2155

Closed
echarles opened this issue Apr 17, 2021 · 7 comments
Closed

Why CHP replicas is 1 and non configurable? #2155

echarles opened this issue Apr 17, 2021 · 7 comments

Comments

@echarles
Copy link

The proxy replicas count is set to 1 and is not configurable

For a number larger than 1, we would need to enforce HTTP session stickiness, which is available in most cloud providers (at least I use it in gcloud).

Was that already been discussed?

@consideRatio
Copy link
Member

CHP is being remotely configured by JupyterHub, unless we have a system for JupyterHub to configure multiple replicas through the REST API requests, we can't support multiple CHP replicas.

  • JupyterHub has a proxy_class configured: ConfigurableHTTPProxy (Python class to add routes etc)
  • ConfigurableHTTPProxy the python class adding routes etc, only works against a single instance of a CHP.

If this should be supported, I think we would need a new class to represent multiple replicas of CHP and to ensure that we can communicate with specific replicas and not just any replica chosen at random by communicating with the k8s Service exposing any one replica running.

There are several discussions about this under the titles of "high availability" already:

@echarles
Copy link
Author

Thx a lot @consideRatio for the background details. KubeIngressProxysounds to me like a promising option. From what I read in the linked issue, it does not seem to be available today in the zjk helm chart?

@consideRatio
Copy link
Member

@echarles it actually is available in this helm chart because it is a Python class part of the KubeSpawner Python package that is installed.

Until jupyterhub/kubespawner#496 is resolved and we improve maintenance in general of the project I'm very hesitant to let Z2JH commit to working against it though: jupyterhub/kubespawner#496.

@echarles
Copy link
Author

@echarles it actually is available in this helm chart because it is a Python class part of the KubeSpawner Python package that is installed.

It is installed as part of the KubeSpawner python package on the hub pod (if I am not mistaken), but I don't see how to use it with the current helm chart configuration options. I would say it is not "usable" today.

@consideRatio
Copy link
Member

It is installed as part of the KubeSpawner python package on the hub pod (if I am not mistaken), but I don't see how to use it with the current helm chart configuration options. I would say it is not "usable" today.

Ah in that regard yes I fully agree, there is no documentation about trying to do so etc and is very much an experimental adventure for anyone who tries.

@consideRatio
Copy link
Member

@echarles agree to close this issue as a duplicate of discussion in #1951, #1364, #710?

@echarles
Copy link
Author

Thx for the continuous and very helpful explanation @consideRatio Closing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants