Warum sehe ich Transport-Endpunkte, die nicht verbunden sind, wenn ich das IBM Cloud Object Storage Cluster Add-on verwende?

Beheben Sie Probleme auf der Transportschicht von Cloud Object Storage mithilfe von Add-ons.

Die folgenden Schritte gelten nur für das IBM Cloud Object Storage cluster add-on. Wenn Sie das Plug-in Helm verwenden, lesen Sie stattdessen den Abschnitt Warum sehe ich Fehler beim Transport-Endpunkt nicht verbunden?

Wenn die Verbindung zwischen den ibm-object-csi-driver Node-Server-Pods und den Anwendungs-Pods unterbrochen wird, werden möglicherweise TransportEndpoint Verbindungsfehler angezeigt.

Ein möglicher Fall für diesen Fehler ist, wenn Patch-Updates angewendet werden. In diesem Fall können bei Anwendungs-Pods vorübergehende Verbindungsfehler auftreten.

Der " ibm-object-csi-driver unterstützt die automatische Wiederherstellung von Datenträgern, die die Verbindung zu " s3fs verloren haben. Die automatische Wiederherstellung kann durch die Bereitstellung einer benutzerdefinierten Ressource erreicht werden, die durch den " ibm-object-csi-driver bereitgestellt wird. Diese Ressource überwacht kontinuierlich die Anwendungen und den von Ihnen angegebenen Namespace und startet App-Pods automatisch neu, wenn TransportEndpoint Fehler auftreten.

  1. Kopieren Sie den folgenden YAML-Code und speichern Sie ihn als Datei mit dem Namen 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. Erstellen Sie die Ressource RecoverStaleVolume in Ihrem Cluster.

    oc create -f stale.yaml
    

    Beispielausgabe

    recoverstalevolume.objectdriver.csi.ibm.com/recoverstalevolume-sample created
    
  3. Überprüfen Sie, ob die Ressource erstellt wurde.

    oc get recoverstalevolume
    

    Beispielausgabe

    NAME  AGE  recoverstalevolume-sample   41s
    
  4. Wenn das Problem weiterhin auftritt, wenden Sie sich bitte an den Support. Öffnen Sie einen Supportfall. Fügen Sie den Falldetails unbedingt alle relevanten Protokolldateien, Fehlermeldungen oder Befehlsausgaben bei.

Überprüfung der Wiederherstellung durch Simulation eines Fehlers

  1. Listen Sie Ihre Einsätze auf.

    oc get deploy -o wide
    

    Beispielausgabe

    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. Listen Sie Ihre App-Pods auf.

    oc get pods -o wide
    

    Beispielausgabe

    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. Auflistung der Pods im ibm-object-csi-operator Namespace.

    oc 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. Löschen Sie den ibm-object-csi-node-xxx Pod im ibm-object-csi-operator Namespace.

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

    Beispielausgabe

    pod "ibm-object-csi-node-vk8jf" deleted
    
  5. Auflistung der Pods im ibm-object-csi-operator Namespace.

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

    Beispielausgabe

    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. Holen Sie sich die Protokolle der ibm-object-csi-operator-controller-manager, um die Wiederherstellung des App-Pods zu verfolgen. Beachten Sie, dass der Operator die Pods der App löscht, damit sie neu gestartet werden.

    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"}