IBM Cloud Docs
Perché si verificano errori di endpoint di trasporto non connesso quando si utilizza il componente aggiuntivo del cluster IBM Cloud Object Storage?

Perché si verificano errori di endpoint di trasporto non connesso quando si utilizza il componente aggiuntivo del cluster IBM Cloud Object Storage?

I passaggi seguenti si applicano solo al componente aggiuntivo del cluster IBM Cloud Object Storage. Se si utilizza il plug-in Helm, vedere Perché vedo errori di endpoint di trasporto non connesso?.

Quando si perde la connessione tra i pod del server del nodo ibm-object-csi-driver e i pod dell'applicazione, si possono verificare errori di connessione TransportEndpoint.

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 con il '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 si verificano TransportEndpoint errori.

  1. Copiare il seguente yaml e salvarlo in un file chiamato 'stale.yaml

    apiVersion: 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>]
    
  2. Creare la risorsa 'RecoverStaleVolume nel cluster.

    kubectl create -f stale.yaml
    

    Output di esempio

    recoverstalevolume.objectdriver.csi.ibm.com/recoverstalevolume-sample created
    
  3. Verificare che la risorsa sia stata creata.

    kubectl get recoverstalevolume
    

    Output di esempio

    NAME  AGE  recoverstalevolume-sample   41s
    
  4. 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

  1. Elencare le distribuzioni.

    kubectl get deploy -o wide
    

    Output 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
    
  2. Elencare i pod dell'applicazione.

    kubectl get pods -o wide
    

    Output 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>
    
  3. Elenca i pod nello spazio dei nomi ibm-object-csi-operator.

    kubectl get pods -n ibm-object-csi-operator -o wide
    
    NAME                                                          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>
    
  4. Eliminare il pod ibm-object-csi-node-xxx nello spazio dei nomi ibm-object-csi-operator.

    kubectl delete pod ibm-object-csi-node-vk8jf -n ibm-object-csi-operator
    

    Output di esempio

    pod "ibm-object-csi-node-vk8jf" deleted
    
  5. Elenca i pod nello spazio dei nomi ibm-object-csi-operator.

    kubectl get pods -n ibm-object-csi-operator -o wide
    

    Output 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>
    
  6. Ottenere i log del ibm-object-csi-operator-controller-manager per 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"}