¿Por qué aparecen errores de punto final de transporte no conectado al utilizar el complemento de clúster IBM Cloud Object Storage?
Resolución de problemas de la capa de transporte de Cloud Object Storage con complementos.
Los siguientes pasos se aplican únicamente al complemento de clúster IBM Cloud Object Storage. Si utiliza el complemento Helm, consulte ¿Por qué aparecen errores de punto final de transporte no conectado? en su lugar.
Cuando se pierde la conexión entre los ibm-object-csi-driver pods de servidor de nodo y los pods de aplicación, es posible que aparezcan TransportEndpoint errores de conexión.
Un posible caso de este error es cuando se aplican actualizaciones de parches. En este caso, los pods de aplicaciones pueden experimentar errores temporales de conexión.
El " ibm-object-csi-driver " admite la autorrecuperación de volúmenes que han perdido la conexión con el " s3fs. La autorrecuperación puede lograrse desplegando un recurso personalizado proporcionado por
el " ibm-object-csi-driver. Este recurso supervisa continuamente las aplicaciones y el espacio de nombres que especifique y reinicia automáticamente los pods de aplicaciones cuando TransportEndpoint se producen
errores.
-
Copia el siguiente código YAML y guárdalo en un archivo llamado
stale.yamlapiVersion: objectdriver.csi.ibm.com/v1alpha1 kind: RecoverStaleVolume metadata: labels: app.kubernetes.io/name: recoverstalevolume app.kubernetes.io/instance: recoverstalevolume-sample name: recoverstalevolume-sample namespace: default spec: logHistory: 200 data: - namespace: default # The namesapce where your app is deployed deployments: [<A comma separated list of all the apps you want to recover>] -
Crea el recurso
RecoverStaleVolumeen tu clúster.oc create -f stale.yamlSalida de ejemplo
recoverstalevolume.objectdriver.csi.ibm.com/recoverstalevolume-sample created -
Comprueba que el recurso se haya creado.
oc get recoverstalevolumeSalida de ejemplo
NAME AGE recoverstalevolume-sample 41s -
Si el problema persiste, póngase en contacto con soporte. Abra un caso de soporte. En los detalles del caso, asegúrese de incluir todos los archivos de registro, mensajes de error o salidas de comandos relevantes.
Verificación de la recuperación mediante la simulación de un error
-
Enumere sus despliegues.
oc get deploy -o wideSalida de ejemplo
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR cos-csi-test-app 1/1 1 1 7h24m app-frontend rabbitmq app=cos-csi-test-app -
Enumere sus pods de aplicaciones.
oc get pods -o wideSalida de ejemplo
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES cos-csi-test-app-6b99bd8bf4-5lt7p 1/1 Running 0 7h24m 172.30.69.21 10.73.114.86 <none> <none> -
Lista los pods en el
ibm-object-csi-operatorespacio de nombres.oc get pods -n ibm-object-csi-operator -o wideNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ibm-object-csi-controller-d64df8f57-l6grj 3/3 Running 0 7h31m 172.30.69.19 10.73.114.86 <none> <none> ibm-object-csi-node-6d4x4 3/3 Running 0 7h31m 172.30.64.24 10.48.3.149 <none> <none> ibm-object-csi-node-gg5pj 3/3 Running 0 7h31m 172.30.116.13 10.93.120.14 <none> <none> ibm-object-csi-node-vk8jf 3/3 Running 0 7h31m 172.30.69.20 10.73.114.86 <none> <none> ibm-object-csi-operator-controller-manager-8544d4f798-llbf8 1/1 Running 0 7h37m 172.30.69.18 10.73.114.86 <none> <none> -
Eliminar el
ibm-object-csi-node-xxxpod en elibm-object-csi-operatorespacio de nombres.oc delete pod ibm-object-csi-node-vk8jf -n ibm-object-csi-operatorSalida de ejemplo
pod "ibm-object-csi-node-vk8jf" deleted -
Lista los pods en el
ibm-object-csi-operatorespacio de nombres.oc get pods -n ibm-object-csi-operator -o wideSalida de ejemplo
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ibm-object-csi-controller-d64df8f57-l6grj 3/3 Running 0 7h37m 172.30.69.19 10.73.114.86 <none> <none> ibm-object-csi-node-6d4x4 3/3 Running 0 7h37m 172.30.64.24 10.48.3.149 <none> <none> ibm-object-csi-node-gg5pj 3/3 Running 0 7h37m 172.30.116.13 10.93.120.14 <none> <none> ibm-object-csi-node-kmn94 3/3 Running 0 8s 172.30.69.23 10.73.114.86 <none> <none> ibm-object-csi-operator-controller-manager-8544d4f798-llbf8 1/1 Running 0 7h43m 172.30.69.18 10.73.114.86 <none> <none> -
Obtén los registros del
ibm-object-csi-operator-controller-managerpara seguir la recuperación de la vaina de la aplicación. Tenga en cuenta que el Operador borra el pod de la aplicación para que se reinicien.2024-07-10T17:25:39Z INFO recoverstalevolume_controller Time to complete {"fetchVolumeStatsFromNodeServerPodLogs": 0.066584637} 2024-07-10T17:25:39Z INFO recoverstalevolume_controller Volume Stats from NodeServer Pod Logs {"Request.Namespace": "default", "Request.Name": "recoverstalevolume-sample", "volume-stas": {"pvc-9d12a2f5-09a9-4eb4-b1f5-2a727249ed2b":"transport endpoint is not connected "}} 2024-07-10T17:25:39Z INFO recoverstalevolume_controller Stale Volume Found {"Request.Namespace": "default", "Request.Name": "recoverstalevolume-sample", "volume": "pvc-9d12a2f5-09a9-4eb4-b1f5-2a727249ed2b"} 2024-07-10T17:25:39Z INFO recoverstalevolume_controller Pod using stale volume {"Request.Namespace": "default", "Request.Name": "recoverstalevolume-sample", "volume-name": "pvc-9d12a2f5-09a9-4eb4-b1f5-2a727249ed2b", "pod-name": "cos-csi-test-app-6b99bd8bf4-5lt7p"} 2024-07-10T17:25:39Z INFO recoverstalevolume_controller Pod deleted. {"Request.Namespace": "default", "Request.Name": "recoverstalevolume-sample"}