Fehlerbehebung bei Notebooks

Nach dem Klicken auf "JupyterLab öffnen" passiert nichts

Vergewissern Sie sich, dass Pop-up-Tabs in Ihrem Browser nicht blockiert werden. JupyterLab wird in einem neuen Browsertab geöffnet.

Kein Proxy-Serverzugriff auf JupyterLab

AI Platform Notebooks verwendet einen internen Google-Push-Proxy-Server, der Zugriff auf JupyterLab gewährt. Die Instanzeinstellungen von AI Platform Notebooks, die Netzwerkkonfiguration und andere Faktoren können den Zugriff auf JupyterLab verhindern. Stellen Sie mithilfe von SSH eine Verbindung zu JupyterLab her und lesen Sie mehr dazu, warum Sie möglicherweise nicht über den umgekehrten Proxy darauf zugreifen können.

Beim Öffnen eines Notebooks wird ein 403-Fehler (Forbidden) angezeigt

Für den Zugriff auf Notebook-Notebooks gibt es drei Möglichkeiten:

  • Einzelnutzer
  • Dienstkonto
  • Projektbearbeiter

Der Zugriffsmodus wird beim Erstellen des Notebooks konfiguriert und in den Notebook-Metadaten definiert:

  • Einzelnutzer:proxy-mode=mail, proxy-user-mail=user@domain.com
  • Dienstkonto:proxy-mode=service_account
  • Projektbearbeiter: proxy-mode=project_editors

Wenn Sie beim Klicken auf "JupyterLab öffnen" nicht auf ein Notebook zugreifen können, versuchen Sie Folgendes:

  • Prüfen Sie, ob der Nutzer, der auf die Instanz zugreift, die Berechtigung iam.serviceAccounts.ActAs für das definierte Dienstkonto hat. Das Dienstkonto auf der Instanz bietet Zugriff auf andere Google Cloud-Dienste. Sie können jedes Dienstkonto innerhalb desselben Projekts verwenden, allerdings benötigen Sie die Berechtigung als Dienstkontonutzer (iam.serviceAccounts.actAs), um auf die Instanz zugreifen zu können. Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet, das ebenfalls diese Berechtigung erfordert.

Das folgende Beispiel zeigt, wie Sie beim Erstellen einer Instanz ein Dienstkonto angeben:

gcloud beta notebooks instances create nb-1 \
  --vm-image-family=tf2-latest-cpu \
  --metadata=proxy-mode=mail,proxy-user-mail=user@domain.com \
  --service-account=your_service_account@project_id.iam.gserviceaccount.com \
  --location=us-west1-a
  • Wenn Sie auf JupyterLab öffnen klicken, um ein Notebook aufzurufen, wird das Notebook in einem neuen Browsertab geöffnet. Falls Sie bei mehreren Google-Konten angemeldet sind, wird der neue Tab mit Ihrem Google-Standardkonto geöffnet. Wenn Sie Ihre Notebook-Instanz nicht mit Ihrem Google-Standardkonto erstellt haben, wird auf dem neuen Browsertab der Fehler 403 (Forbidden) angezeigt.

Beim Öffnen eines Notebooks wird ein 504-Fehler (Gateway Timeout) angezeigt.

Dies ist ein Hinweis auf ein internes Proxy-Zeitlimit oder das Zeitlimit eines Back-End-Servers (Jupyter Zeitlimit). Dies kann in folgenden Fällen angezeigt werden:

  • Die Anfrage erreichte den internen Backing-Proxyserver nicht
  • Backend(Jupyter) gibt einen 504-Fehler zurück.

Wenn Sie nicht auf ein Notebook zugreifen können:

  • Öffnen Sie eine Supportanfrage.

Beim Öffnen eines Notebooks wird ein 524-Fehler (A Timeout Occurred) angezeigt.

Der interne Backing-Proxy-Server hat innerhalb des Zeitlimits keine Antwort vom Backverting-Proxy-Agent für die Anfrage erhalten. Der Proxy-Agent wird in Ihrer Notebookinstanz als Docker-Container ausgeführt. Ein 524-Fehler ist normalerweise ein Hinweis darauf, dass der Backinging-Proxy-Agent keine Verbindung zum Proxy-Server des Back-Ends herstellt oder die Anfragen auf der Back-End-Serverseite (Jupyter) zu lange dauern. Ein typischer Fehler für diesen Fehler ist die Art des Nutzers, z.B. ein Netzwerkproblem. oder der Dienst für den umgekehrten Proxy-Agent/Jupyter-Dienst wird nicht ausgeführt)

Wenn Sie nicht auf ein Notebook zugreifen können, versuchen Sie folgendes:

  • Prüfen Sie, ob Ihr Notebook gestartet wurde.

  • Prüfen Sie, ob auf dem Laufwerk der Notebook-Instanz ausreichend Speicherplatz vorhanden ist.

  • Prüfen Sie, ob der Docker-Dienst gestartet wird.

  • Prüfen Sie, ob der Backverting-Proxy-Agent ausgeführt wird. Wenn der Agent gestartet wurde, starten Sie ihn neu.

  • Ob der Back-End-Dienst ausgeführt wird. Falls ja, starten Sie den Computer neu.

  • Prüfen Sie, ob Sie die AI Platform Deep Learning VM Image Version M55 oder höher verwenden.

Beim Öffnen eines Notebooks wird ein 598-Fehler (Network Read Timeout) angezeigt

Der Backverting-Proxy-Server hat mehr als 10 Minuten vom "Inverting Proxy-Agent" nicht gehört. Dies ist ein starker Hinweis auf ein Problem mit umgekehrtem Proxy-Agent/Jupyter-Problem.

Wenn Sie nicht auf ein Notebook zugreifen können, versuchen Sie folgendes:

  • Prüfen Sie, ob Ihr Notebook gestartet wurde.

  • Prüfen Sie, ob der Docker-Dienst gestartet wird.

  • Prüfen Sie, ob der Backverting-Proxy-Agent ausgeführt wird. Wenn der Agent gestartet wurde, starten Sie ihn neu.

  • Ob der Back-End-Dienst ausgeführt wird. Falls ja, starten Sie den Computer neu.

  • Prüfen Sie, ob Sie die AI Platform Deep Learning VM Image Version M55 oder höher verwenden.

Beim Herunterladen von Dateien aus JupyterLab wird ein 403-Fehler (Forbidden) angezeigt

Das Paket "notebook" im M23-Release von Deep Learning VM enthält einen Programmfehler, der verhindert, dass Dateien über die JupyterLab-UI heruntergeladen werden können. Weitere Informationen zum Programmfehler finden Sie unter Cannot download files after JL update und Download file functionality is broken in notebook packages version 5.7.6+ (5.7.7, 5.7.8).

Wenn Sie das M23-Release von Deep Learning VM verwenden, können Sie das Problem auf zwei Arten beheben:

  • Verwenden Sie den Safari-Browser. Der Download funktioniert in Safari.

  • Führen Sie ein Downgrade Ihres Notebook-Pakets auf Version 5.7.5 aus.

    So führen Sie ein Downgrade Ihres Notebook-Pakets aus:

    1. Stellen Sie über SSH eine Verbindung zu Ihrer Deep Learning VM her. Informationen zum Herstellen einer SSH-Verbindung zu einer VM finden Sie unter Verbindung zu Instanzen herstellen.

    2. Führen Sie folgende Befehle aus:

      sudo pip3 install notebook==5.7.5
      sudo service jupyter restart
      

Nach dem Neustart der VM kann nicht auf lokale Dateien über das Notebook-Terminal verwiesen werden

Nach dem Neustart einer AI Platform Notebooks-Instanz kann nicht über ein Notebook-Terminal auf lokale Dateien verwiesen werden.

Dieses Problem ist bekannt. Um in einem Notebook-Terminal auf Ihre lokalen Dateien zu verweisen, müssen Sie zuerst Ihr aktuelles Arbeitsverzeichnis mit dem folgenden Befehl wiederherstellen:

cd PWD

Ersetzen Sie in diesem Befehl PWD durch Ihr aktuelles Arbeitsverzeichnis. Wenn Ihr aktuelles Arbeitsverzeichnis beispielsweise /home/jupyter/ lautet, verwenden Sie den Befehl cd /home/jupyter/.

Nachdem Sie Ihr aktuelles Arbeitsverzeichnis wiederhergestellt haben, können Sie vom Notebook-Terminal aus auf Ihre lokalen Dateien verweisen.

Das GPU-Kontingent wurde überschritten

Prüfen Sie auf der Seite Kontingente die Anzahl der in Ihrem Projekt verfügbaren GPUs. Wenn auf der Seite "Kontingente" keine GPUs aufgeführt sind oder Sie zusätzliche GPU-Kontingente benötigen, können Sie eine Erhöhung des Kontingents beantragen. Informationen dazu finden Sie auf der Compute Engine-Seite Ressourcenkontingente unter Weitere Kontingente anfordern.

Neues Notebook wird nicht erstellt (unzureichende Berechtigungen)

Das Erstellen einer Notebook-Instanz dauert normalerweise etwa eine Minute. Wenn Ihre neue Notebook-Instanz auf unbestimmte Zeit im Status "Ausstehend" verbleibt, verfügt das zum Starten der Notebook-Instanz verwendete Dienstkonto möglicherweise nicht über die erforderliche Berechtigung Bearbeiter in Ihrem Google Cloud Platform-Projekt (GCP).

Sie können eine Notebook-Instanz mit einem von Ihnen erstellten benutzerdefinierten Dienstkonto oder im Einzelbenutzermodus mit einer Nutzer-ID starten. Wenn Sie eine Notebook-Instanz im Einzelbenutzermodus aufrufen, initiiert die Notebook-Instanz zuerst den Startvorgang mit dem Compute Engine-Standarddienstkonto und übergibt die Steuerung dann an Ihre Nutzer-ID.

So können Sie prüfen, ob ein Dienstkonto die erforderlichen Berechtigungen hat:

Console

  1. Öffnen Sie in der Cloud Console die Seite "IAM".

    IAM-Seite öffnen

  2. Legen Sie eines dieser Dienstkonten für Ihre Notebook-Instanz fest:

    • Ein benutzerdefiniertes Dienstkonto, das Sie beim Erstellen Ihrer Notebook-Instanz angegeben haben.

    • Das Compute Engine-Standarddienstkonto für Ihr GCP-Projekt, das beim Start der Notebook-Instanz im Einzelbenutzermodus verwendet wird. Das Compute Engine-Standarddienstkonto für Ihr GCP-Projekt hat den Namen project-number-compute@developer.gserviceaccount.com. Beispiel: 113377992299-compute@developer.gserviceaccount.com

  3. Achten Sie darauf, dass Ihr Dienstkonto die Rolle Bearbeiter hat.

  4. Ist dies nicht der Fall, bearbeiten Sie das Dienstkonto und fügen Sie es der Rolle Bearbeiter hinzu.

Weitere Informationen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen in der IAM-Dokumentation.

gcloud

  1. Falls noch nicht geschehen, installieren Sie das gcloud-Befehlszeilentool.

  2. Rufen Sie mit dem folgenden Befehl den Namen und die Projektnummer für Ihr GCP-Projekt ab. Ersetzen Sie project-id durch die Projekt-ID für Ihr GCP-Projekt.

    gcloud projects describe project-id
    

    Die Ausgabe, die den Namen (name:) und die Projektnummer (projectNumber:) für Ihr Projekt enthält, sollte in etwa so aussehen:

    createTime: '2018-10-18T21:03:31.408Z'
    lifecycleState: ACTIVE
    name: my-project-name
    parent:
     id: '396521612403'
     type: folder
    projectId: my-project-id-1234
    projectNumber: '113377992299'
    
  3. Legen Sie eines dieser Dienstkonten für Ihre Notebook-Instanz fest:

    • Ein benutzerdefiniertes Dienstkonto, das Sie beim Erstellen Ihrer Notebook-Instanz angegeben haben.

    • Das Compute Engine-Standarddienstkonto für Ihr GCP-Projekt, das beim Start der Notebook-Instanz im Einzelbenutzermodus verwendet wird. Das Compute Engine-Standarddienstkonto für Ihr GCP-Projekt hat den Namen project-number-compute@developer.gserviceaccount.com. Beispiel: 113377992299-compute@developer.gserviceaccount.com

  4. Fügen Sie dem Dienstkonto die Rolle roles/editor mit dem folgenden Befehl hinzu: Ersetzen Sie project-name durch den Namen Ihres Projekts und service-account-id durch die Dienstkonto-ID für Ihre Notebookinstanz.

    gcloud projects add-iam-policy-binding project-name \
     --member serviceAccount:service-account-id \
     --role roles/editor
    

Beim Erstellen einer Instanz wird die Fehlermeldung "Berechtigung verweigert" angezeigt.

Prüfen Sie beim Erstellen einer neuen Instanz, ob der Nutzer, der die Instanz erstellt, die Berechtigung iam.serviceAccounts.ActAs für das definierte Dienstkonto hat.

Das Dienstkonto auf der Instanz bietet Zugriff auf andere Google Cloud-Dienste. Sie können jedes Dienstkonto im selben Projekt verwenden, aber zum Erstellen der Instanz benötigen Sie die Rolle "Dienstkontonutzer" (iam.serviceAccounts.actAs). Wenn nicht angegeben, wird das Compute Engine-Standarddienstkonto verwendet.

Das folgende Beispiel zeigt, wie Sie beim Erstellen einer Instanz ein Dienstkonto angeben:

gcloud beta notebooks instances create nb-1 \
  --vm-image-family=tf2-latest-cpu \
  --service-account=your_service_account@project_id.iam.gserviceaccount.com \
  --location=us-west1-a

Informationen zum Gewähren der Rolle des Dienstkontonutzers finden Sie unter Mitgliedern die Identität eines einzelnen Dienstkontos erlauben.

Die Erstellung einer neuen Instanz führt zu einem Fehler "bereits vorhanden".

Prüfen Sie beim Erstellen einer neuen Instanz, ob eine AI Platform Notebooks-Instanz mit demselben Namen zuvor von Compute Engine nicht gelöscht wurde und noch in der AI Platform Notebooks API-Datenbank vorhanden ist.

Das folgende Beispiel zeigt, wie Instanzen mithilfe der AI Platform Notebooks API aufgelistet und deren Status überprüft werden.

gcloud beta notebooks instances list --location=LOCATION

Wenn eine Instanz den Status DELETED hat, führen Sie den folgenden Befehl aus, um sie endgültig zu löschen.

gcloud beta notebooks instances delete INSTANCE_NAME --location=LOCATION

Das Notebook reagiert nicht

Wenn Ihre Notebookinstanz keine Zellen ausführt oder eingefroren zu sein scheint, starten Sie den Kernel neu. Dazu klicken Sie im oberen Menü auf Kernel und dann auf Kernel neu starten. Wenn dies nicht funktioniert, versuchen Sie folgendes:

  • Führen Sie in einer Terminalsitzung im Notebook top aus und prüfen Sie, ob andere Prozesse die CPU auslasten.
  • Prüfen Sie über das Terminal mit df, wie viel Speicherplatz frei oder mit free, wie viel Arbeitsspeicher verfügbar ist.
  • Wählen Sie die Instanz auf der Seite Notebookinstanzen aus und klicken Sie auf Beenden, um die Instanz herunterzufahren. Wenn sie vollständig heruntergefahren ist, wählen Sie die Instanz aus und klicken auf Start.

Erneute Registrierung beim Back-End-Proxy-Server

Wenn Sie die Notebooks mit dem internen Inverting-Proxyserver erneut registrieren möchten, können Sie die VM auf der Seite der Notebookinstanzen stoppen und starten. Alternativ können Sie sich über SSH und Geben Sie Folgendes ein:

cd /opt/deeplearning/bin
sudo ./attempt-register-vm-on-proxy.sh

Docker-Dienststatus überprüfen

Zum Prüfen des Docker-Dienststatus können Sie sich über SSH bei der Notebookinstanz anmelden und Folgendes eingeben:

sudo service docker status

Prüfen, ob der Backverting-Proxy-Agent ausgeführt wird

Melden Sie sich über SSH bei der Notebookinstanz an, um zu überprüfen, ob das Notebook Inverting-Proxy-Agent ausgeführt wird. Geben Sie dazu Folgendes ein:

# Confirm Inverting Proxy agent Docker container is running (proxy-agent)
sudo docker ps

# Verify State.Status is running and State.Running is true.
sudo docker inspect proxy-agent

# Grab logs
sudo docker logs proxy-agent

Jupyter-Dienststatus prüfen und Logs erfassen

Zum Prüfen des Jupyter-Dienststatus können Sie sich über SSH bei der Notebookinstanz anmelden und Folgendes eingeben:

sudo service jupyter status

So erfassen Sie Jupyter-Dienstlogs:

sudo journalctl -u jupyter.service --no-pager

Prüfen, ob die interne Jupyter API aktiviert ist

Um zu prüfen, ob die interne Jupyter API aktiv ist, können Sie sich über SSH bei der Notebookinstanz anmelden und Folgendes eingeben:

curl http://127.0.0.1:8080/api/kernelspecs

Starten Sie den Docker-Dienst neu

Sie können den Docker-Dienst neu starten, indem Sie die VM über die Seite der Notebookinstanzen stoppen und starten oder sich über SSH in der Notebookinstanz anmelden und Folgendes eingeben:

sudo service docker restart

Reverse-Proxy-Agent neu starten

Wenn Sie den Reverse-Proxy-Agent neu starten möchten, können Sie die VM über die Seite der Notebookinstanzen stoppen und starten. Alternativ können Sie sich über SSH bei der Notebookinstanz anmelden und Folgendes eingeben:

sudo docker restart proxy-agent

Jupyter-Dienst neu starten

Sie können den Jupyter-Dienst neu starten, indem Sie die VM über die Seite der Notebookinstanzen stoppen und starten oder sich über SSH in der Notebookinstanz anmelden und Folgendes eingeben:

sudo service jupyter restart