Skip to main content
NetApp artificial intelligence solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

JupyterHub-Bereitstellung

In diesem Abschnitt werden die Aufgaben beschrieben, die Sie ausführen müssen, um JupyterHub in Ihrem Kubernetes-Cluster bereitzustellen.

Hinweis Es ist möglich, JupyterHub auf anderen Plattformen als Kubernetes bereitzustellen. Die Bereitstellung von JupyterHub auf anderen Plattformen als Kubernetes liegt außerhalb des Umfangs dieser Lösung.

Voraussetzungen

Bevor Sie die in diesem Abschnitt beschriebene Bereitstellungsübung durchführen, gehen wir davon aus, dass Sie die folgenden Aufgaben bereits ausgeführt haben:

  1. Sie verfügen bereits über einen funktionierenden Kubernetes-Cluster.

  2. Sie haben NetApp Trident bereits in Ihrem Kubernetes-Cluster installiert und konfiguriert. Weitere Einzelheiten zu Trident finden Sie im"Trident -Dokumentation" .

Helm installieren

JupyterHub wird mit Helm bereitgestellt, einem beliebten Paketmanager für Kubernetes. Bevor Sie JupyterHub bereitstellen, müssen Sie Helm auf Ihrem Kubernetes-Steuerknoten installieren. Um Helm zu installieren, folgen Sie den "Installationsanweisungen" in der offiziellen Helm-Dokumentation.

Standardmäßige Kubernetes-Speicherklasse festlegen

Bevor Sie JupyterHub bereitstellen, müssen Sie eine Standard-StorageClass in Ihrem Kubernetes-Cluster festlegen. Um eine Standard-StorageClass innerhalb Ihres Clusters festzulegen, folgen Sie den Anweisungen im"Kubeflow-Bereitstellung" Abschnitt. Wenn Sie in Ihrem Cluster bereits eine Standard-StorageClass festgelegt haben, können Sie diesen Schritt überspringen.

JupyterHub bereitstellen

Nachdem Sie die oben genannten Schritte abgeschlossen haben, können Sie JupyterHub nun bereitstellen. Für die Bereitstellung von JupyterHub sind die folgenden Schritte erforderlich:

JupyterHub-Bereitstellung konfigurieren

Vor der Bereitstellung empfiehlt es sich, die JupyterHub-Bereitstellung für Ihre jeweilige Umgebung zu optimieren. Sie können eine config.yaml-Datei erstellen und sie während der Bereitstellung mithilfe des Helm-Diagramms verwenden.

Hinweis In dieser config.yaml-Datei können Sie den Parameter (singleuser.storage.dynamic.storageClass) für die NetApp Trident StorageClass festlegen. Dies ist die Speicherklasse, die zum Bereitstellen der Volumes für einzelne Benutzerarbeitsbereiche verwendet wird.

Hinzufügen freigegebener Volumes

Wenn Sie ein gemeinsames Volume für alle JupyterHub-Benutzer verwenden möchten, können Sie Ihre config.yaml entsprechend anpassen. Wenn Sie beispielsweise über einen freigegebenen PersistentVolumeClaim namens „jupyterhub-shared-volume“ verfügen, können Sie ihn in allen Benutzer-Pods wie folgt als /home/shared mounten:

singleuser:
  storage:
    extraVolumes:
      - name: jupyterhub-shared
        persistentVolumeClaim:
          claimName: jupyterhub-shared-volume
    extraVolumeMounts:
      - name: jupyterhub-shared
        mountPath: /home/shared
Hinweis Dies ist ein optionaler Schritt. Sie können diese Parameter an Ihre Bedürfnisse anpassen.

JupyterHub mit Helm Chart bereitstellen

Machen Sie Helm auf das JupyterHub Helm-Diagramm-Repository aufmerksam.

helm repo add jupyterhub https://hub.jupyter.org/helm-chart/
helm repo update

Dies sollte eine Ausgabe wie die folgende anzeigen:

Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "stable" chart repository
...Successfully got an update from the "jupyterhub" chart repository
Update Complete. ⎈ Happy Helming!⎈

Installieren Sie nun das von Ihrer config.yaml konfigurierte Diagramm, indem Sie diesen Befehl aus dem Verzeichnis ausführen, das Ihre config.yaml enthält:

helm upgrade --cleanup-on-fail \
  --install my-jupyterhub jupyterhub/jupyterhub \
  --namespace my-namespace \
  --create-namespace \
  --values config.yaml
Hinweis In diesem Beispiel:

<helm-release-name> ist auf my-jupyterhub eingestellt, was der Name Ihrer JupyterHub-Version sein wird. <k8s-namespace> ist auf my-namespace eingestellt, also den Namespace, in dem Sie JupyterHub installieren möchten. Das Flag --create-namespace wird verwendet, um den Namespace zu erstellen, falls er noch nicht vorhanden ist. Das Flag --values gibt die Datei config.yaml an, die Ihre gewünschten Konfigurationsoptionen enthält.

Bereitstellung prüfen

Während Schritt 2 ausgeführt wird, können Sie sehen, wie die Pods mit dem folgenden Befehl erstellt werden:

kubectl get pod --namespace <k8s-namespace>

Warten Sie, bis der Hub und der Proxy-Pod in den Status „Laufen“ wechseln.

NAME                    READY     STATUS    RESTARTS   AGE
hub-5d4ffd57cf-k68z8    1/1       Running   0          37s
proxy-7cb9bc4cc-9bdlp   1/1       Running   0          37s

Zugriff auf JupyterHub

Suchen Sie die IP, die wir für den Zugriff auf den JupyterHub verwenden können. Führen Sie den folgenden Befehl aus, bis die EXTERNE IP des öffentlichen Proxy-Dienstes wie in der Beispielausgabe verfügbar ist.

Hinweis Wir haben den NodePort-Dienst in unserer Datei config.yaml verwendet. Sie können ihn basierend auf Ihrem Setup (z. B. LoadBalancer) an Ihre Umgebung anpassen.
kubectl --namespace <k8s-namespace> get service proxy-public
NAME           TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)        AGE
proxy-public   NodePort   10.51.248.230   104.196.41.97   80:30000/TCP   1m

Um JupyterHub zu verwenden, geben Sie die externe IP für den Proxy-Public-Dienst in einen Browser ein.