Fehlerbehebung bei der Installation Ihrer Watson Sprachdienste

Sie können diese Fehlerbehebungsinformationen verwenden, um Probleme mit Ihrer Sprach-Services-Installation zu diagnostizieren und zu beheben. In den Informationsdokumenten werden Beispielszenarien für Dinge beschrieben, die schief gehen können und wie die Probleme mit der Root-Ursache identifiziert und behoben werden können.

Berechtigungen, die Sie für diese Tasks benötigen:
Sie müssen ein Administrator des Red Hat® OpenShift®-Projekts sein, um den Cluster zu verwalten.

Fehlerbehebungsthemen

In den folgenden Szenarios finden Sie weitere Informationen zur Fehlerbehebung der verschiedenen Probleme:

Hinweis: In den Befehlen ist der Name des Projekts ${PROJECT_CPD_INST_OPERATORS} (Namespace), in dem der Watson Speech-Operator bereitgestellt wird, und ${PROJECT_CPD_INST_OPERANDS} ist der Name des Projekts (Namespace), in dem die Speech-Dienste installiert sind.

Die Watson Speech-Laufzeit-Pods und Modell-/Stimmen-Upload-Pods bleiben im Status „Init“ hängen

Das Multicloud Object Gateway muss als Voraussetzung für den Watson Sprachdienst installiert sein. Wenn sich der Speech to Text Laufzeit-Pod und der Modell-Upload-Pod (oder der Text to Speech Laufzeit-Pod und der Sprach-Upload-Pod) im Init Status befinden, ist Multicloud Object Gateway möglicherweise nicht korrekt installiert oder konfiguriert. Führen Sie zur Bestätigung den folgenden Befehl aus:


oc describe pod runtime-pod-name -n ${PROJECT_CPD_INST_OPERANDS}

Wenn die Ausgabe die folgende Warnmeldung enthält, wurde der Multicloud Object Gateway-Datenspeicher nicht ordnungsgemäß installiert oder konfiguriert.


Warning  FailedMount  101s (x10 over 5m51s)  kubelet            MountVolume.SetUp failed for volume "minio-account" : secret "noobaa-account-watson-speech" not found

Sobald das Multicloud Object Gateway installiert und das Watson Speech Service Secret konfiguriert ist, kann der Dienst eine Verbindung zum Multicloud Object Gateway herstellen und die Installation wird fortgesetzt.

Der Watson Sprach-Operator-Pod kann nicht gestartet werden

Der Watson Sprach-Operator-Pod kann nicht gestartet werden.

  1. Lernen Sie den Namen des Pods für den Operator:

    oc get pods -l app.kubernetes.io/name=watson-speech -n ${PROJECT_CPD_INST_OPERATORS}
  2. Verwenden Sie den folgenden Befehl, um mehr über die Art des Problems zu erfahren. In dem Befehl ist „pod-name“ der Name eines Pods, dessen Status Sie abfragen möchten.

    oc describe pod-name -n ${PROJECT_CPD_INST_OPERATORS}
  3. Sie können die Protokolldateien für den Pod an den IBM Support senden, um weitere Hilfe zu erhalten.

Einige Pods befinden sich im Wartestatus

Einige Speech-Service-Pods verbleiben im Status Pending.

  1. Verwenden Sie den folgenden Befehl, um mehr über die Art des Problems zu erfahren. Im Befehl ist „pod-name“ der Name eines Pods, dessen Status „“ ist Pending.

    oc describe pod-name -n ${PROJECT_CPD_INST_OPERANDS}

Einige mögliche Ursachen für das Problem folgen:

  • Für den Pod stehen nicht genügend Ressourcen (Speicher und CPU) zur Verfügung.

  • Der Pod kann das Container-Image oder -Images nicht abrufen.

Installation der Watson Sprachdienste schlägt fehl

Bei der Installation der Watson Sprachdienste wird eine Fehlermeldung in folgender Form angezeigt:

TASK [utils : applying CR <speech-cr> for Watson Speech to Text] ********************************************
Tuesday 1 November 2022 17:44:48 +0000 (0:00:02.140) 0:01:08.881 ****** fatal: [localhost]: FAILED! =>
{"changed": false, "error": 422, "msg": "Failed to create object: b'{\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},
\"status\":\"Failure\",\"message\":\"WatsonSpeech.speech.watson.ibm.com \\\\\"<speech-cr>\\\\\" is invalid: spec.tags: 
Required value\",\"reason\":\"Invalid\",\"details\":{\"name\":\"<speech-cr>",\"group\":\"speech.watson.ibm.com\",\"kind
\":\"WatsonSpeech\",\"causes\":[{\"reason\":\"FieldValueRequired\",\"message\":\"Required value\",\"field\":\"spec.tags\"}]},
\"code\":422}\\n'", "reason": "Unprocessable Entity", "status": 422}

Diese Meldung weist darauf hin, dass alle Speech-Mikroservices bei der Erstinstallation der false Speech-Dienste mit der param-file Option auf gesetzt wurden. Sie müssen mindestens einen der Microservices auf setzen true , damit die Installation erfolgreich ist. Weitere Informationen finden Sie unter Festlegen der Installationsoptionen.

Der Watson Speech-Operator läuft, aber es sind keine Microservices installiert

Der Watson Speech-Operator wird ausgeführt, aber keiner der Speech-Mikroservices wird installiert.

  1. Verwenden Sie den folgenden Befehl, um sicherzustellen, dass Sie die angepasste Ressource für die Speech-Services im gewünschten Namensbereich erstellt haben:

    oc get WatsonSpeech -n ${PROJECT_CPD_INST_OPERANDS}

    Wenn der Befehl keine Informationen in seiner Ausgabe ausgibt, müssen Sie möglicherweise die angepasste Ressource erstellen. Weitere Informationen finden Sie unter Installieren von Watson Sprachdiensten.

  2. Wenn die benutzerdefinierte Ressource vorhanden ist, überprüfen Sie die Operator-Protokolle, um festzustellen, warum die Microservices nicht installiert werden.

Jobs für Pull-Operationen von Sprache-Text-Modellen brauchen eine lange Zeit bis zum Abschluss

Jobs mit Namen wie <custom-resource-name>-stt-models-string holen die Bilder für Speech to Text Modelle aus Docker und laden sie in den Multicloud Object Gateway-Datenspeicher hoch. Die angepasste Ressource führt einen Job pro aktiviertem Modell aus.

Die Sprache-Text-Modelle sind groß. In einigen Fällen können diese Jobs 20-25 Minuten zur Fertigstellung benötigen. Wenn Sie sich Gedanken darüber machen, wie lange es dauert, die Bilder herunterzuladen und hochzuladen.

Sprach-Services 'initContainers' werden lange ausgeführt

Ein initContainer ist ein spezieller Container, der für einen Pod ausgeführt wird. Alle initContainers für einen Pod müssen vollständig sein, bevor der Pod seinen regulären Container starten kann.

Die Speech to Text und Text to Speech Laufzeiten verwenden ein initContainer , um zu warten, bis der Multicloud Object Gateway-Datenspeicher ausgeführt wird und alle installierten Modelle und Stimmen hochgeladen sind. Die initContainer für beide Laufzeit-Mikroservices kann bis zu 30 Minuten dauern, insbesondere bei einer Online-Installation, während die Images aus der IBM Registry abgerufen werden. Wenn der initContainer für einen der beiden Laufzeit-Mikroservices länger als 30 Minuten läuft, überprüfen Sie dessen Protokolldatei mit dem entsprechenden Befehl:

  • Führen Sie für den Speech to Text-Service den folgenden Befehl zum Überprüfen des Status der Servicemodelle aus:

    oc logs -f runtime-pod-name -c wait4models -n ${PROJECT_CPD_INST_OPERANDS}
  • Führen Sie für den Service Text to Speech den folgenden Befehl aus, um den Status der Stimmen des Service zu überprüfen:

    oc logs -f runtime-pod-name -c wait4voices -n ${PROJECT_CPD_INST_OPERANDS}

In beiden Befehlen gibt Name des Laufzeit-Pods den Namen des Pods für die Laufzeit Speech to Text oder Text to Speech an. Der Name lautet beispielsweise speech-cr-stt-runtime-85957944ff-wrzl4 für die Speech to Text Laufzeit oder speech-cr-tts-runtime-858bd6f96f-g7dcw für die Text to Speech Laufzeit.

Mögliche Ursachen für die lange Ausführung des initContainer umfassen Folgendes:

  • Der Laufzeit-Pod kann keine Verbindung zum Multicloud Object Gateway herstellen, das möglicherweise gerade gestartet wird oder einen Fehler aufweist. Warten Sie, bis Multicloud Object Gateway gestartet ist, oder überprüfen Sie dessen Protokolldateien.

  • Multicloud Object Gateway wartet möglicherweise darauf, dass alle erforderlichen Modelle und Stimmen installiert werden. Warten Sie, bis alle Modelle und Stimmen hochgeladen wurden. Sie können den folgenden Befehl verwenden, um den Status der Jobs, welche die Modelle und Stimmen hochladen, zu überprüfen:

    oc get jobs -l 'app.kubernetes.io/component in (stt-models,tts-voices)' -n ${PROJECT_CPD_INST_OPERANDS}

    Sie können die Protokolldateien für die Pods überprüfen, um festzustellen, ob ein Fehler aufgetreten ist. Andernfalls warten Sie, bis die Operation zum Hochladen von Jobs abgeschlossen ist.

Das Watson Sprach-Operator-Protokoll gibt an, dass der geheime TLS-Schlüssel nicht rechtzeitig erstellt wurde.

Der Watson Speech-Operator verwendet den Zertifikatmanager aus den Basisdiensten, um einen geheimen Namen zu erstellen, der von den Microservices der Speech-Dienste als TLS-Zertifikat verwendet werden kann. Der folgende Fehler im Watson Speech-Operator-Protokoll kann darauf hinweisen, dass die Microservices der Basisdienste nicht ordnungsgemäß konfiguriert sind. In der Nachricht ist <custom-resource-name> der Name Ihrer benutzerdefinierten Ressource für Sprachdienste.

Secret: <custom-resource-name>-instance-tls did not get created in time.

Wenn dieser Fehler auftritt, wenden Sie sich bitte an IBM den Support, um Hilfe zu erhalten.

Für den Watson-Sprachservice wird kein Status gemeldet

Der folgende Befehl meldet keinen Status für den Watson Speech-Service (die Antwort ist leer):

oc get WatsonSpeech ${CUSTOM_RESOURCE_SPEECH} -n ${PROJECT_CPD_INST_OPERANDS}

Gehen Sie wie folgt vor, um die Ursache für dieses Problem zu ermitteln:

  1. Verwenden Sie den folgenden Befehl, um festzustellen, ob der Watson Sprach-Operator-Pod aktiv ist:

    oc get pods -n ${PROJECT_CPD_INST_OPERANDS}

    Der Operator muss für den Befehl oc get WatsonSpeech ausgeführt werden, um seinen Status zu melden. Wenn der Status des Operator-Pods anzeigt, dass er sich noch im Startvorgang befindet, warten Sie, bis der Operator mit der Ausführung beginnt. Der Operator kann zwischen 20 und 60 Minuten benötigen, um Änderungen an Ihrer angepassten Ressource zu erstellen oder anzuwenden.

  2. Überprüfen Sie die Protokolldatei für den Watson Sprach-Operator-Pod, und überprüfen Sie, ob Fehler oder Probleme aufgetreten sind.

Einige Sprach-Services werden nicht ausgeführt

Der folgende Befehl meldet den Status einiger Sprachservices als NotRunning:

oc get WatsonSpeech ${CUSTOM_RESOURCE_SPEECH} -n ${PROJECT_CPD_INST_OPERANDS}

Ein Status von NotRunning kann anzeigen, dass der Prozess immer noch gestartet wird. Es kann 20-60 Minuten benötigen, bis der Operator beendet und der Service gestartet werden kann.

Training von angepassten Akustikmodellen scheitert

Wenn Sie versuchen, angepasste akustische Modelle für Speech to Text zu trainieren, meldet der Service die folgenden Fehlernachrichten:

Unresponsive backend detected. Please try later.

Diese Nachricht gibt an, dass der Speech to Text AM-Patcher nicht über ausreichende Ressourcen für die Bearbeitung seiner Anforderungen verfügt. Um die Anzahl der CPUs zu erhöhen, die für den AM Patcher verfügbar sind, verwenden Sie die angepasste Ressourceneigenschaft sttAMPatcher.resources.requestsCPU, um den Wert der Eigenschaft von 1 auf 5 zu erhöhen.

Durch die Zuordnung weiterer Ressourcen wird dieser Fehler verhindert und es können angepasste akustische Modelle wie erwartet trainiert werden. Durch die Erhöhung des Werts der Eigenschaft wird die Größe der Implementierung erhöht.

PostgreSQL Pods bleiben beim Upgrade im Status „Terminating“ hängen

Wenn Sie die Watson Sprachdienste aktualisieren, kann es vorkommen, dass die PostgreSQL Pods im Terminating Status hängen bleiben. Wenn dieses Problem während Ihres Upgrades auftritt, führen Sie die folgenden Schritte aus, um das Problem zu beheben.

  1. Verwenden Sie den folgenden Befehl, um Pods zu identifizieren, die sich im Terminating Status befinden:

    oc get pods -n ${PROJECT_CPD_INST_OPERANDS} -o wide | awk {'print $1'}
  2. Verwenden Sie den folgenden Befehl, um die Umgebungsvariable pods so festzulegen, dass sie die Liste der Pods enthält, die sich im Terminating Status befinden:

    pods=$(oc get pods -n ${PROJECT_CPD_INST_OPERANDS} -o wide | grep Terminating | awk {'print $1'})
  3. Verwenden Sie den folgenden Befehl, um die festgefahrenen Pods zu löschen, damit der Upgrade-Prozess fortgesetzt werden kann:

    oc delete pod $pods -n ${PROJECT_CPD_INST_OPERANDS} --force=true --grace-period=0

Das Upgrade auf Watson die Sprachdienstversion 4.8 und höher kann nicht abgeschlossen werden

Wenn Sie ein Upgrade auf Watson die Speech Services-Version 4.8 und höher durchführen, kann das Upgrade der MinIO benutzerdefinierten Ressource fehlschlagen, da der MinIO Backup-Job oder der MinIO PVC-Erstellungsjob im vorherigen Upgrade-Vorgang nicht gelöscht werden konnte. Die Lösung besteht darin, die Sicherungs- und PVC-Erstellungsaufträge zu löschen. Das Upgrade wird dann normal fortgesetzt. Führen Sie die folgenden Schritte aus, um das Problem zu beheben.

  1. Um den Status der MinIO benutzerdefinierten Ressource zu überprüfen, geben Sie den folgenden Befehl ein:

    oc get MinioCluster ${CUSTOM_RESOURCE_SPEECH} -n ${PROJECT_CPD_INST_OPERANDS}

    Die fehlgeschlagene MinIO benutzerdefinierte Ressource wird durch einen Eintrag in der folgenden Form identifiziert:

    <custom-resource-name>   MinioCluster   8d    4          ReleaseFailed   True     UpgradeError

    Sie können den folgenden Befehl ausführen, um detailliertere Informationen zum Fehler zu erhalten:

    oc describe MinioCluster ${CUSTOM_RESOURCE_SPEECH} -n ${PROJECT_CPD_INST_OPERANDS}

    Die benutzerdefinierte Ressource gibt eine Statusmeldung zurück, die in etwa wie folgt aussieht:

    [2:37 PM]   - lastTransitionTime: "2023-04-18T11:05:05Z"
        message: 'failed to upgrade release: pre-upgrade hooks failed: warning: Hook pre-upgrade
          ibm-minio/templates/minio-createpvc-job.yaml failed: jobs.batch "<custom-resource-name>-ibm-minio-create-pvc"
          already exists'
        reason: UpgradeError
        status: "True"
        type: ReleaseFailed
  2. Um den fehlgeschlagenen MinIO PVC-Erstellungsauftrag zu löschen, geben Sie den folgenden Befehl ein:

    oc delete job ${CUSTOM_RESOURCE_SPEECH}-ibm-minio-create-pvc --namespace ${PROJECT_CPD_INST_OPERANDS}
  3. Um festzustellen, ob der MinIO Backup-Job weiterhin vorhanden ist, geben Sie den folgenden Befehl ein:

    oc get job --namespace ${PROJECT_CPD_INST_OPERANDS} | grep ${CUSTOM_RESOURCE_SPEECH}-ibm-minio-backup

    Der nicht MinIO gelöschte Sicherungsauftrag wird durch einen Eintrag in folgender Form identifiziert:

    <custom-resource-name>-ibm-minio-backup   1/1   3m25s   1d
  4. Um den Sicherungsauftrag zu löschen, geben Sie den folgenden Befehl ein:

    oc delete job ${CUSTOM_RESOURCE_SPEECH}-ibm-minio-backup --namespace ${PROJECT_CPD_INST_OPERANDS}

Sobald Sie diese Aufträge gelöscht haben, wird das Upgrade fortgesetzt und abgeschlossen.