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

Document k8s cluster setup using minikube (for learning and development) #3260

Merged
merged 4 commits into from
Nov 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions docs/source/kubernetes/minikube/step-zero-minikube.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
(minikube-k8s)

# Kubernetes on minikube (for learning and development only)

[minikube] can setup a Kubernetes cluster on a single computer. minikube be suitable in order to learn about Kubernetes and to develop and test changes, but its not meant to be used for production purposes.

```{important}
The Zero to JupyterHub guide assumes you're using a managed Kubernetes service with one of the main cloud platforms and **[minikube] is not officially supported**. You may be able to get help on the [Jupyter community forum](https://discourse.jupyter.org/c/jupyterhub/10).
```

[minikube]: https://minikube.sigs.k8s.io/docs/

## Kubernetes cluster requirements

All the requirements are implemented in minikube >= v1.31.2:

- [Dynamic Volume Provisioning](https://kubernetes.io/docs/concepts/storage/dynamic-provisioning/) for persistent storage
- [LoadBalancer](https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer) or [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) for managing external access to JupyterHub

## minikube installation

Follow the installation steps in the [minikube's "Get Started!" page](https://minikube.sigs.k8s.io/docs/start/).

## Kubernetes cluster creation

From a terminal, run

```bash
minikube start \
--kubernetes-version stable \
--nodes 2 \
--cpus 2 \
--memory 2000 \
--cni calico
```

To test if your cluster is initialized, run:

```bash
kubectl get node
```

The response should list two running nodes (or however many nodes you set with ``--nodes` above).

Congrats. Now that you have your Kubernetes cluster running, it's time to
begin {ref}`setup-helm`.
1 change: 1 addition & 0 deletions docs/source/kubernetes/setup-kubernetes.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Choose one option and proceed.
```{toctree}
:titlesonly:

minikube/step-zero-minikube
google/step-zero-gcp
microsoft/step-zero-azure
amazon/step-zero-aws
Expand Down