Open pyverdon opened 1 year ago
Thank you for opening your first issue in this project! Engagement like this is essential for open source projects! :hugs:
If you haven't done so already, check out Jupyter's Code of Conduct. Also, please try to follow the issue template as it helps other other community members to contribute more effectively.
You can meet the other Jovyans by joining our Discourse forum. There is also an intro thread there where you can stop by and say Hi! :wave:
Welcome to the Jupyter community! :tada:
Hi @pyverdon - thanks for using EG, especially with a look toward HA.
- With two replica and a nginx hash on remote_addr: the websocket works only to one pod (from my test). All new kernel are created on the same pod and are not balanced to the second one. Killing the first pod and starting a new session with a new kernel will reach the second pod, but will failed with a kernel message indicating that the "kernel have been culled or died unexpectedly".
Do you mean node where pod is used here?
My next move will be to use persisted session
Yes, no HA-based functionality will work without persisted sessions. Please see our docs regarding availability modes.
Also note that your clients (i.e., notebook sessions) may need to issue a kernel "reconnect" request to get the kernel re-synced. This, along with potential culling functionality, is also referenced in that section of the docs. The culling timeout will essentially reset when a kernel's management changes between EG pods.
Description
Hello, My kubernetes cluster use an Nginx Operator. the EG ingress annotations are set as below via EG helm charts. My goal is to have two active/active replicas running, with sharding based on incoming ip.
With a single EG pod : The websocket works fine and the EG can be reached and a python_kubernetes kernel is spawned in a namespace
With two replica and a nginx hash on remote_addr: the websocket works only to one pod (from my test). All new kernel are created on the same pod and are not balanced to the second one. Killing the first pod and starting a new session with a new kernel will reach the second pod, but will failed with a kernel message indicating that the "kernel have been culled or died unexpectedly".
Please note that this is my first try . My next move will be to use persisted session
Reproduce
deploy the EG on kubernetes with the helm charts and ingress annotations below
Context
JEG version 3.0.0 Spark version: 3.3.0 Kubernetes 1.23 Nginx version: 1.19.9