You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+3-21Lines changed: 3 additions & 21 deletions
Original file line number
Diff line number
Diff line change
@@ -8,27 +8,9 @@ Create and manage your `Jupyter` notebooks on `Kubernetes` **without** `JupyterH
8
8
9
9
### How and why?
10
10
11
-
Currently, if you want to deploy `Jupyter` notebooks on `Kubernetes` using available open-source tools, you need to choose between two major approaches:
12
-
13
-
- One that re-implements the notebooks management logic the `Kubernetes` way, it:
14
-
- integrates well with `Kubernetes` ecosystem: using [Operators](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/) and [CRD](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/).
15
-
- is usually part of a bigger toolkit ([Kubeflow](https://www.kubeflow.org) e.g.).
16
-
- comes with more features than one may need.
17
-
- are complicated and add a lot of maintenance burden even for people who are familiar with `Kubernetes`.
18
-
19
-
20
-
- The other that re-uses already existing notebooks management code (mainly [JupyterHub](https://jupyter.org/hub)) and tries to integrate it with `Kubernetes`, it:
21
-
- doesn't reinvent the wheel: people who are familiar with managing notebooks outside/before Kubernetes don't feel unaccustomed.
22
-
- comes with more features than one may need, `notebook-on-kube` itself will be kept as simple as possible (a straightforward [FastAPI](https://github.com/tiangolo/fastapi) application.)
23
-
- relies on "hacky" code to import and connect these legacy tools to `Kubernetes` and introduce feature redundancy:
24
-
-`JupyterHub` relies on [kubespawner](https://github.com/jupyterhub/kubespawner) to spawn `Kubernetes` resources (Pods, PVC etc.) representing a notebook. **But** why adding another
25
-
`Kubernetes` client when we already use [Helm](https://github.com/helm/helm)? `notebook-on-kube` uses `Helm` to manage the notebooks (see [here](#create-connect-to-and-delete-a-notebook)).
26
-
- `JupyterHub` adds its own auth layer, **but** why not using Kubernetes [authn](https://kubernetes.io/docs/reference/access-authn-authz/authentication/)/[authz](https://kubernetes.io/docs/reference/access-authn-authz/authorization/)
27
-
(user management) features? `notebook-on-kube` uses the same `Kubernetes`[OpenID Connect](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens) token on behalf of the user to manage their notebooks: Reuse `Kubernetes` access levels and be more transparent.
28
-
- `JupyterHub` comes with its own [node-http-proxy](https://github.com/jupyterhub/configurable-http-proxy) for reverse proxying, **but** why not making use of the well-established [Ingress NGINX Controller](https://github.com/kubernetes/ingress-nginx)?
29
-
`notebook-on-kube` deploys an `Ingress NGINX` Controller instance and configures it for each notebook via `Ingress` resources.
30
-
31
-
`notebook-on-kube` re-uses these features and tools that are already there and are tailored to run applications on `Kubernetes` and provides a third, middle ground, easy to maintain and well-integrated approach to managing notebooks on `Kubernetes`!
11
+
You can check out this [post](http://ouba.online/blog/2023/3/8/you_probably_dont_need_jupyterhub_on_kubernetes/post.html).
12
+
13
+
`notebook-on-kube` provides the following features:
0 commit comments