Fehler bei persistentem Speicher debuggen
Informieren Sie sich über die Optionen, die Ihnen für die Fehlerbehebung beim persistenten Speicher und zum Eingrenzen der jeweiligen Fehlerquelle zur Verfügung stehen.
Es wird überprüft, ob der Pod, der Ihre Speicherinstanz anhängt, erfolgreich implementiert wurde
-
Listen Sie die Pods in Ihrem Cluster auf. Ein Pod wurde erfolgreich bereitgestellt, wenn er den Status Running (Aktiv) anzeigt.
kubectl get pods -
Rufen Sie die Details für Ihren Pod ab und prüfen Sie, ob im Ereignisabschnitt (Events) Ihrer CLI-Ausgabe Fehler angezeigt werden.
kubectl describe pod <pod_name> -
Rufen Sie die Protokolle für Ihre App ab und prüfen Sie, ob Sie Fehlernachrichten finden.
kubectl logs <pod_name>
Ihre App-Pod erneut starten
-
Wenn Ihr Pod Teil einer Bereitstellung ist, löschen Sie den Pod und lassen Sie die Bereitstellung den Pod erneut erstellen. Wenn Ihr Pod nicht Teil einer Bereitstellung ist, löschen Sie den Pod und wenden Sie Ihre Konfigurationsdatei für Pods erneut an.
kubectl delete pod <pod_name>kubectl apply -f <app.yaml> -
Wenn der Neustart Ihres Pods das Problem nicht behebt, laden Sie Ihren Workerknoten erneut.
-
Überprüfen Sie, ob Sie die neueste Version des IBM Cloud- und IBM Cloud Kubernetes Service-Plug-ins verwenden.
ibmcloud updateibmcloud plugin repo-plugins
Überprüfen Sie, ob der Speichertreiber und die Plug-in-Pods den betriebsbereiten Status Running anzeigen
- Listen Sie die Pods im Namensbereich
kube-systemauf.kubectl get pods -n kube-system - Wenn die Speichertreiber- und Plug-in-Pods keinen Aktiv-Status aufweisen, rufen Sie weitere Details des Pods ab, um die Fehlerursache zu finden. Abhängig vom Status Ihres Pods können Sie möglicherweise nicht alle folgenden
Befehle ausführen.
- Rufen Sie die Namen der Container ab, die im Treiberpod ausgeführt werden.
kubectl get pod <pod_name> -n kube-system -o jsonpath="{.spec['containers','initContainers'][*].name}" | tr -s '[[:space:]]' '\n' ``` Beispielausgabe für Block Storage for VPC mit drei Containern: ```sh {: screen} csi-provisioner csi-attacher iks-vpc-block-driver ``` Beispielausgabe für Block Storage for Classic: ```sh {: pre} ibmcloud-block-storage-driver-container ``` 2. Exportieren Sie die Protokolle aus dem Pod für Treiber in eine Datei `logs.txt` auf Ihrer lokalen Maschine. Geben Sie den Treibercontainernamen an. ```sh {: pre} kubectl logs <pod_name> -n kube-system -c <container_name> > logs.txt ``` 3. Überprüfen Sie die Protokolldatei. ```sh {: pre} cat logs.txt ``` - Analysieren Sie den Ereignisabschnitt (Events) der CLI-Ausgabe des Befehls
kubectl describe podund die aktuellen Protokolle, um die eigentliche Ursache für den Fehler herauszufinden.
Es wird überprüft, ob Ihr PVC erfolgreich bereitgestellt wurde.
-
Überprüfen Sie den Status Ihres PVC. Ein PVC wurde erfolgreich bereitgestellt, wenn er den Status Bound (Gebunden) anzeigt.
kubectl get pvc -
Wenn als Status des PVC Pending (Anstehend) angezeigt wird, rufen Sie den Fehler ab, aufgrund dessen der PVC in diesem Status bleibt.
kubectl describe pvc <pvc_name> -
Überprüfen Sie allgemeine Fehler, die während der PVC-Erstellung auftreten können.
-
Überprüfen Sie allgemeine Fehler, die auftreten können, wenn Sie einen PVC an Ihre App anhängen.
-
Stellen Sie sicher, dass die Version der
kubectl-CLI, die Sie auf Ihrer lokalen Maschine ausführen, mit der Kubernetes-Version übereinstimmt, die in Ihrem Cluster installiert ist. Wenn Sie einekubectl-CLI-Version verwenden, die nicht wenigstens mit der Version hauptversion.nebenversion Ihres Clusters übereinstimmt, können unerwartete Ergebnisse auftreten. Beispiel: [ Kubernetes unterstützt keinekubectlClient-Versionen, die um zwei oder mehr Versionen von der Server-Version abweichen (n ± 2).- Zeigen Sie die Version der
kubectl-CLI an, die in Ihrem Cluster und auf Ihrer lokalen Maschine installiert ist.
kubectl version ``` Beispielausgabe ```sh {: screen} Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.36", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"darwin/amd64"} Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.36+IKS", GitCommit:"e15454c2216a73b59e9a059fd2def4e6712a7cf0", GitTreeState:"clean", BuildDate:"2019-04-01T10:08:07Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"} ``` Die CLI-Versionen stimmen überein, wenn in `GitVersion` für den Client und den Server dieselbe Version angezeigt wird. Sie können den `+IKS`-Teil der Version für den Server ignorieren. 2. Wenn die `kubectl`-CLI-Versionen auf Ihrer lokalen Maschine und in Ihrem Cluster nicht übereinstimmen, entweder [aktualisieren Sie Ihren Cluster](/docs/containers?topic=containers-update) oder [installieren Sie eine andere CLI-Version auf Ihrer lokalen Maschine](/docs/containers?topic=containers-cli-install). - Zeigen Sie die Version der
-
Stellen Sie im Hinblick auf Block Storage for VPC sicher, dass Sie über die neueste Version des Add-ons verfügen.
-
Nur für klassischen Blockspeicher, Objektspeicher und Portworx: Stellen Sie sicher, dass Sie die neueste Helm-Chart-Version für das Plug-in installiert haben.
Block- und Objektspeicher:
1. Aktualisieren Sie Ihre Helm-Chart-Repositorys.
```sh {: pre}
helm repo update
```
2. Listen Sie die Helm-Charts im Repository auf.
**Für klassischen Blockspeicher**:
```sh {: pre}
helm search repo iks-charts | grep block-storage-plugin
```
Beispielausgabe
```sh {: screen}
iks-charts-stage/ibmcloud-block-storage-plugin 1.5.0 A Helm chart for installing ibmcloud block storage plugin
iks-charts/ibmcloud-block-storage-plugin 1.5.0 A Helm chart for installing ibmcloud block storage plugin
```
**Für Objektspeicher**:
```sh {: pre}
helm search repo ibm-charts | grep object-storage-plugin
```
Beispielausgabe
```sh {: screen}
ibm-charts/ibm-object-storage-plugin 1.0.9 1.0.9 A Helm chart for installing ibmcloud object storage plugin
```
3. Listen Sie die installierten Helm-Charts in Ihrem Cluster auf und vergleichen Sie die Version, die Sie installiert haben, mit der Version, die verfügbar ist.
```sh {: pre}
helm list --all-namespaces
```
4. Wenn eine neuere Version verfügbar ist, installieren Sie diese Version. Anweisungen finden Sie unter [Aktualisieren des IBM Cloud-Blockspeicher-Plug-ins](/docs/containers?topic=containers-block_storage#update_block) und [Aktualisieren des IBM Cloud Object Storage-Plug-ins](/docs/containers?topic=containers-storage_cos_install#update_cos_plugin).
Portworx
-
Finden Sie die aktuellste verfügbare Version der Helm-Tabelle.
-
Listen Sie die installierten Helm-Charts in Ihrem Cluster auf und vergleichen Sie die Version, die Sie installiert haben, mit der Version, die verfügbar ist.
helm list --all-namespaces -
Wenn eine neuere Version verfügbar ist, installieren Sie diese Version. Anweisungen finden Sie unter Portworx in Ihrem Cluster aktualisieren.
OpenShift Datenbasis
Beschreiben Sie Ihre ODF-Ressourcen und überprüfen Sie die Befehlsausgaben für alle Fehlernachrichten.
- Listen Sie den Namen Ihres ODF-Clusters auf.
Beispielausgabe:kubectl get ocsclusterNAME AGE ocscluster-vpc 71d - Beschreiben Sie den Speichercluster und überprüfen Sie den Abschnitt
Eventsder Ausgabe für alle Fehlernachrichten.kubectl describe ocscluster <ocscluster-name> - Listen Sie die Pods im Namensbereich
kube-systemauf und vergewissern Sie sich, dass sie im betriebsbereiten StatusRunningsind.kubectl get pods -n kube-system - Beschreiben Sie den Pod
ibm-ocs-operator-controller-managerund überprüfen Sie den AbschnittEventsin der Ausgabe für alle Fehlernachrichten.kubectl describe pod <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system - Überprüfen Sie die Protokolle des
ibm-ocs-operator-controller-manager.kubectl logs <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system - Beschreiben Sie NooBaa und überprüfen Sie den Abschnitt
Eventsder Ausgabe auf eventuelle Fehlermeldungen.kubectl describe noobaa -n openshift-storage