Implementazione di JupyterHub
Questa sezione descrive le attività che devi completare per implementare JupyterHub nel tuo cluster Kubernetes.
|
È possibile implementare JupyterHub su piattaforme diverse da Kubernetes. L'implementazione di JupyterHub su piattaforme diverse da Kubernetes non rientra nell'ambito di questa soluzione. |
Prerequisiti
Prima di eseguire l'esercizio di implementazione descritto in questa sezione, si presuppone che siano già state eseguite le seguenti attività:
-
Hai già un cluster Kubernetes funzionante.
-
NetApp Trident è già stato installato e configurato nel cluster Kubernetes. Per ulteriori informazioni su Trident, fare riferimento alla "Documentazione di Trident".
Installare Helm
JupyterHub è implementato utilizzando Helm, un noto gestore di pacchetti per Kubernetes. Prima di implementare JupyterHub, è necessario installare Helm sul nodo di controllo Kubernetes. Per installare Helm, seguire la "istruzioni per l'installazione" nella documentazione ufficiale di Helm.
Impostare la classe di storage Kubernetes predefinita
Prima di implementare JupyterHub, devi indicare una classe storage predefinita all'interno del cluster Kubernetes. Per designare una StorageClass predefinita all'interno del cluster, segui le istruzioni riportate nella "Implementazione di Kubeflow" sezione. Se è già stata designata una StorageClass predefinita all'interno del cluster, è possibile saltare questo passaggio.
Implementare JupyterHub
Dopo aver completato i passaggi precedenti, è ora possibile implementare JupyterHub. L'implementazione di JupyterHub richiede i seguenti passaggi:
Configurare la distribuzione di JupyterHub
Prima della distribuzione, è buona norma ottimizzare la distribuzione di JupyterHub per il proprio ambiente. È possibile creare un file config.yaml e utilizzarlo durante la distribuzione utilizzando il grafico Helm.
Un esempio di file config.yaml è disponibile all'indirizzo https://github.com/jupyterhub/zero-to-jupyterhub-k8s/blob/HEAD/jupyterhub/values.yaml
|
In questo file config.yaml, è possibile impostare il parametro (singleuser.storage.Dynamic.storageClass) per NetApp Trident StorageClass. Questa è la classe di archiviazione che verrà utilizzata per il provisioning dei volumi per le singole aree di lavoro utente. |
Aggiunta di volumi condivisi
Se si desidera utilizzare un volume condiviso per tutti gli utenti di JupyterHub, è possibile regolare di conseguenza il proprio config.yaml. Ad esempio, se si dispone di un PersistentVolumeClaim condiviso denominato jupyterhub-shared-volume, è possibile montarlo come /home/shared in tutti i pod utente come:
|
Questo è un passaggio facoltativo, è possibile regolare questi parametri in base alle proprie esigenze. |
Implementare JupyterHub con Helm Chart
Informare Helm del repository grafico JupyterHub Helm.
Questo dovrebbe mostrare output come:
Installare ora il grafico configurato dal file config.yaml eseguendo questo comando dalla directory che contiene il file config.yaml:
|
In questo esempio: |
<helm-release-name> è impostato su my-jupyterhub, che sarà il nome della tua versione di JupyterHub. <k8s-namespace> è impostato su my-namespace, ovvero lo spazio dei nomi in cui si desidera installare JupyterHub. Il flag --create-namespace viene utilizzato per creare lo spazio dei nomi se non esiste già. L'indicatore --values specifica il file config.yaml che contiene le opzioni di configurazione desiderate.
Controllare distribuzione
Mentre il passaggio 2 è in esecuzione, è possibile vedere i pod creati dal seguente comando:
Attendere che l'hub e il pod proxy entrino nello stato in esecuzione.
Accedere a JupyterHub
Trova l'IP che possiamo usare per accedere al JupyterHub. Eseguire il comando seguente finché l'IP ESTERNO del servizio proxy-pubblico non è disponibile come nell'output di esempio.
|
Abbiamo utilizzato il servizio NodePort nel nostro file config.yaml, è possibile modificare l'ambiente in base alla configurazione (ad esempio LoadBalancer). |
Per utilizzare JupyterHub, immettere l'IP esterno per il servizio pubblico-proxy in un browser.