IBM Cloud Object Storage 클러스터 애드온을 사용할 때 전송 엔드포인트가 연결되지 않았다는 오류가 표시되는 이유는 무엇인가요?

애드온과 관련된 ‘ Cloud Object Storage ’ 전송 계층 문제를 해결합니다.

다음 단계는 IBM Cloud Object Storage 클러스터 애드온에만 적용됩니다. Helm 플러그인을 사용하는 경우 전송 엔드포인트가 연결되지 않은 오류가 표시되는 이유는 무엇인가요? 를 참조하세요.

ibm-object-csi-driver 노드 서버 파드와 애플리케이션 파드 간에 연결이 끊어지면 TransportEndpoint 연결 오류가 표시될 수 있습니다.

이 오류가 발생할 수 있는 경우 중 하나는 패치 업데이트가 적용된 경우입니다. 이 경우 앱 포드에 일시적인 연결 오류가 발생할 수 있습니다.

' ibm-object-csi-driver '은 ' s3fs'에 대한 연결이 끊어진 볼륨의 자동 복구를 지원합니다. 자동 복구는 ' ibm-object-csi-driver'에서 제공하는 사용자 지정 리소스를 배포하여 수행할 수 있습니다. 이 리소스는 사용자가 지정한 애플리케이션과 네임스페이스를 지속적으로 모니터링하고 TransportEndpoint 오류가 발생하면 자동으로 앱 파드를 다시 시작합니다.

  1. 다음 YAML 내용을 복사하여 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. 클러스터에 ‘ RecoverStaleVolume ’ 리소스를 생성합니다.

    oc create -f stale.yaml
    

    출력 예

    recoverstalevolume.objectdriver.csi.ibm.com/recoverstalevolume-sample created
    
  3. 리소스가 생성되었는지 확인하십시오.

    oc get recoverstalevolume
    

    출력 예

    NAME  AGE  recoverstalevolume-sample   41s
    
  4. 문제가 계속되면 지원에 문의하십시오. 지원 케이스 열기 케이스 세부 정보에 관련 로그 파일, 오류 메시지 또는 명령 출력을 모두 포함해야 합니다.

오류 시뮬레이션을 통한 복구 확인

  1. 배포를 나열합니다.

    oc get deploy -o wide
    

    출력 예

    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. 앱 포드를 나열합니다.

    oc get pods -o wide
    

    출력 예

    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. ibm-object-csi-operator 네임스페이스에 파드를 나열합니다.

    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. ibm-object-csi-operator 네임스페이스에서 ibm-object-csi-node-xxx 파드를 삭제합니다.

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

    출력 예

    pod "ibm-object-csi-node-vk8jf" deleted
    
  5. ibm-object-csi-operator 네임스페이스에 파드를 나열합니다.

    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          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. ibm-object-csi-operator-controller-manager 의 로그를 가져와 앱 포드 복구를 추적합니다. 운영자가 앱의 포드를 삭제하면 앱이 다시 시작된다는 점에 유의하세요.

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