In our deployment, we are deploying many different notebook servers inside a Kubernetes cluster, behind a JupyterHub. In the case of kernel startup, the connection info communicated back using a raw socket. I'm wondering if there is a rationale for the ResponseManager requiring a raw level 4 TCP socket?
The fact that it's a raw socket, makes it such that we can not utilize level 7 features, such as proxy passing based on routes. We'd have to proxy based on ports, which complicates many things. Without going into specifics on our cluster, I'm trying to understand is there anything that withholds us from bringing this logic into API call? In those cases, routing would be taken care entirely using the JupyterHub.
edit: Now that I'm thinking about it, it would also simplify the security aspect, as kernels no longer have to deal with encrypting the connection info payload.