クラスタアドオンIBM Cloud Object Storageの使用時にトランスポートエンドポイントが接続されていないエラーが表示されるのはなぜですか?

アドオンに関連する Cloud Object Storage のトランスポート層の問題のトラブルシューティングを行う。

以下の手順は、 IBM Cloud Object Storage クラスタ・アドオンのみに適用されます。 Helm プラグインを使用している場合は、 トランスポート・エンドポイントが接続されていないエラーが表示される理由を 参照してください。

ノード・サーバー・ポッドとアプリケーション・ポッド間の接続が失われると、接続エラーが発生 TransportEndpoint ことがあります ibm-object-csi-driver

このエラーが発生するケースとして考えられるのは、パッチアップデートが適用された場合である。 この場合、アプリのポッドで一時的な接続エラーが発生することがある。

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. 問題が解決しない場合は、サポートにお問い合わせください。 サポート Case を開きます。 ケースの詳細には、関連するログファイル、エラーメッセージ、コマンド出力を必ず含めてください。

エラーをシミュレートして復旧を検証する

  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 ログを取得し、アプリのポッドリカバリーをフォローする。 Operatorはアプリのポッドを削除し、再起動させることに注意してください。

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