Depuración de anomalías de almacenamiento persistente
Revise las opciones para depurar el almacenamiento persistente y encontrar las causas raíz de los errores.
Comprobar si el pod que monta la instancia de almacenamiento se ha desplegado correctamente
-
Obtenga una lista de pods en el clúster. Un pod se ha desplegado correctamente si muestra el estado Running.
oc get pods -
Obtenga los detalles de su pod y compruebe si se muestran errores en la sección Events de la salida de la CLI.
oc describe pod <pod_name> -
Recupere los registros de la app y compruebe si se ve algún mensaje de error.
oc logs <pod_name>
Reiniciar el pod de app
-
Si el pod forma parte de un despliegue, suprima el pod y deje que el despliegue lo reconstruya. Si no forma parte de un despliegue, suprímalo y vuelva a aplicar el archivo de configuración de pod.
oc delete pod <pod_name>oc apply -f <app.yaml> -
Si reiniciando el pod no se resuelve el problema, vuelva a cargar el nodo trabajador.
-
Verifique que utiliza la última versión de IBM Cloud y del plugin de IBM Cloud Kubernetes Service.
ibmcloud updateibmcloud plugin repo-plugins
Verificar que el controlador de almacenamiento y los pods de plugin muestran un estado Running
- Obtenga una lista de los pods del proyecto
kube-system.oc get pods -n kube-system - Si el controlador de almacenamiento y los pods de plugin no muestran un estado de Ejecución, obtenga más detalles del pod para encontrar la causa raíz. En función del estado del pod, es posible que no pueda ejecutar todos
los mandatos siguientes.
- Obtenga los nombres de los contenedores que se ejecutan en el pod del controlador.
kubectl get pod <pod_name> -n kube-system -o jsonpath="{.spec['containers','initContainers'][*].name}" | tr -s '[[:space:]]' '\n' ``` Ejemplo de salida para Block Storage for VPC con tres contenedores: ```sh {: screen} csi-provisioner csi-attacher iks-vpc-block-driver ``` Ejemplo de salida para Block Storage for Classic: ```sh {: pre} ibmcloud-block-storage-driver-container ``` 2. Exporte los registros del pod de controlador a un archivo `logs.txt` en la máquina local. Incluya el nombre de contenedor del controlador. ```sh {: pre} oc logs <pod_name> -n kube-system -c <container_name> > logs.txt ``` 3. Revise el archivo de registro. ```sh {: pre} cat logs.txt ``` - Analice la sección Events de la salida de la CLI del mandato
oc describe pody los registros más recientes para encontrar la causa raíz del error.
Comprobar si la PVC se ha suministrado correctamente.
-
Compruebe el estado de la PVC. Una PVC se ha suministrado correctamente si la PVC muestra el estado Bound.
oc get pvc -
Si el estado de la PVC es Pending, analice el error para ver por qué la PVC sigue en estado pendiente.
oc describe pvc <pvc_name> -
Revise los errores comunes que se pueden producir durante la creación de una PVC.
-
Revise los errores comunes que pueden producirse cuando se monta una PVC en una app.
-
Verifique que la versión de la CLI de
kubectlque se ejecuta en la máquina local coincide con la versión de Kubernetes que está instalada en el clúster. Si utiliza una versión de CLI dekubectlque no coincide al menos con la versión major.minor de los clústeres, es posible que se produzcan resultados inesperados. Por ejemplo, [ Kubernetes no es compatible con versiones de clientekubectlque tengan una diferencia de dos o más versiones con respecto a la versión del servidor (n ± 2)].- Visualice la versión de la CLI de
kubectlque está instalada en el clúster y en la máquina local.
oc version ``` Salida de ejemplo ```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"} ``` Las versiones de la CLI coinciden si aparece la misma versión en `GitVersion` para el cliente y para el servidor. Puede pasar por alto la parte `+IKS` de la versión del servidor. 2. Si las versiones de la CLI de `kubectl` en la máquina local y el clúster no coinciden, [actualice el clúster](/docs/openshift?topic=openshift-update) o [instale una versión de CLI diferente en la máquina local](/docs/openshift?topic=openshift-cli-install). - Visualice la versión de la CLI de
-
Para Block Storage for VPC, verifique que tiene la última versión del complemento.
-
Solo para almacenamiento en bloque clásico, almacenamiento de objetos y Portworx: asegúrese de que ha instalado la versión más reciente del diagrama de Helm para el plugin.
Almacenamiento en bloque y de objetos:
1. Actualice los repositorios del diagrama de Helm.
```sh {: pre}
helm repo update
```
2. Obtenga una lista de los diagramas de Helm del repositorio.
**Para almacenamiento en bloque clásico**:
```sh {: pre}
helm search repo iks-charts | grep block-storage-plugin
```
Salida de ejemplo
```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
```
**Para almacenamiento de objetos**:
```sh {: pre}
helm search repo ibm-charts | grep object-storage-plugin
```
Salida de ejemplo
```sh {: screen}
ibm-charts/ibm-object-storage-plugin 1.0.9 1.0.9 A Helm chart for installing ibmcloud object storage plugin
```
3. Obtenga una lista de los diagramas de Helm instalados en el clúster y compare la versión que ha instalado con la versión que está disponible.
```sh {: pre}
helm list --all-namespaces
```
4. Si hay una versión más reciente disponible, instale esta versión. Puede obtener las instrucciones consultando [Actualización del plug-in IBM Cloud Block Storage](/docs/openshift?topic=openshift-vpc-block#vpc-addon-update) y [Actualización del plug-in IBM Cloud Object Storage](/docs/openshift?topic=openshift-storage_cos_install#update_cos_plugin).
Portworx
-
Encuentra la última versión disponible del gráfico Helm.
-
Obtenga una lista de los diagramas de Helm instalados en el clúster y compare la versión que ha instalado con la versión que está disponible.
helm list --all-namespaces -
Si hay una versión más reciente disponible, instale esta versión. Para obtener instrucciones, consulte Actualización de Portworx en el clúster.
OpenShift Data Foundation
Describa los recursos de ODF y revise si hay mensajes de error en la salida de los mandatos.
- Liste el nombre del clúster de ODF.
Salida de ejemplo:oc get ocsclusterNAME AGE ocscluster-vpc 71d - Describa el clúster de almacenamiento y revise si la sección
Eventsde la salida contiene algún mensaje de error.oc describe ocscluster <ocscluster-name> - List the pods in the
kube-systemnamespace and verify that they areRunningoc get pods -n kube-system - Describa el pod
ibm-ocs-operator-controller-managery revise si la secciónEventsde la salida contiene algún mensaje de error.oc describe pod <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system - Revise los registros de
ibm-ocs-operator-controller-manager.oc logs <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system - Describa NooBaa y revise si la sección
Eventsde la salida contiene algún mensaje de error.oc describe noobaa -n openshift-storage