Perché si verificano errori di endpoint di trasporto non connesso quando si utilizza il componente aggiuntivo cluster IBM Cloud Object Storage?
Risolvere i problemi relativi al livello di trasporto di " Cloud Object Storage " con i componenti aggiuntivi.
I passi seguenti si applicano solo al componente aggiuntivo del cluster IBM Cloud Object Storage. Se si utilizza il plug-in Helm, vedere invece la sezione Perché l'endpoint di trasporto non è connesso?
Quando si perde la connessione tra i pod del ibm-object-csi-driver server del nodo e i pod dell'applicazione, si possono vedere TransportEndpoint errori di connessione.
Un possibile caso di questo errore si verifica quando vengono applicati gli aggiornamenti delle patch. In questo caso, i pod delle applicazioni possono presentare errori di connessione temporanei.
Il 'ibm-object-csi-driver supporta il recupero automatico dei volumi che hanno perso la connessione al 's3fs. L'autorecovery può essere ottenuto distribuendo una risorsa personalizzata fornita da 'ibm-object-csi-driver.
Questa risorsa monitora continuamente le applicazioni e lo spazio dei nomi specificato dall'utente e riavvia automaticamente i pod delle applicazioni quando TransportEndpoint si verificano errori.
-
Copia il seguente codice YAML e salvalo in un file denominato
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 la risorsa "
RecoverStaleVolume" nel tuo cluster.oc create -f stale.yamlOutput di esempio
recoverstalevolume.objectdriver.csi.ibm.com/recoverstalevolume-sample created -
Verificare che la risorsa sia stata creata.
oc get recoverstalevolumeOutput di esempio
NAME AGE recoverstalevolume-sample 41s -
Se il problema persiste, contattare il supporto. Apri un caso di supporto. Nei dettagli del caso, assicurarsi di includere qualsiasi file di registro, messaggio di errore o output di comando pertinente.
Verifica del recupero attraverso la simulazione di un errore
-
Elencare le distribuzioni.
oc get deploy -o wideOutput di esempio
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 -
Elencare i pod dell'applicazione.
oc get pods -o wideOutput di esempio
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> -
Elenca i pod nello
ibm-object-csi-operatorspazio dei nomi.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> -
Elimina il
ibm-object-csi-node-xxxpod nelloibm-object-csi-operatorspazio dei nomi.oc delete pod ibm-object-csi-node-vk8jf -n ibm-object-csi-operatorOutput di esempio
pod "ibm-object-csi-node-vk8jf" deleted -
Elenca i pod nello
ibm-object-csi-operatorspazio dei nomi.oc get pods -n ibm-object-csi-operator -o wideOutput di esempio
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> -
Ottenere i log del
ibm-object-csi-operator-controller-managerper seguire il recupero dell'app pod. Si noti che l'Operatore cancella il pod dell'applicazione in modo che venga riavviato.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"}