使用IBM Cloud Object Storage叢集附加元件時,為什麼我會看到傳輸端點未連接錯誤?
以下步驟僅適用於IBM Cloud Object Storage叢集附加元件。 如果您使用Helm插件,請參閱 為什麼我會看到傳輸端點未連接錯誤? 反而。
當 ibm-object-csi-driver
伺服器 Pod 和應用程式 Pod 之間的連線遺失時,您可能會看到 TransportEndpoint
錯誤。
出現此錯誤的一種可能情況是套用補丁更新時。 在這種情況下,應用程式 Pod 可能會遇到臨時連線錯誤。
ibm-object-csi-driver
支援自動恢復與 s3fs
失去連接的磁碟區。 可以透過部署 ibm-object-csi-driver
提供的自訂資源來實現自動復原。 此資源持續監視您指定的應用程式和命名空間,並在發生 TransportEndpoint
時自動重新啟動應用程式 Pod。
-
複製以下 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>]
-
在叢集中建立
RecoverStaleVolume
資源。oc create -f stale.yaml
輸出範例
recoverstalevolume.objectdriver.csi.ibm.com/recoverstalevolume-sample created
-
驗證資源已建立。
oc get recoverstalevolume
輸出範例
NAME AGE recoverstalevolume-sample 41s
-
如果仍然發生此問題,請聯絡支援人員。 開啟 支援案例。 在案例詳細資訊中,請務必包含任何相關的日誌檔案、錯誤訊息或命令輸出。
透過模擬錯誤來驗證恢復
-
列出您的部署。
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
-
列出您的應用程式 Pod。
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>
-
列出
ibm-object-csi-operator
命名空間中的 pod。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>
-
刪除
ibm-object-csi-operator
命名空間中的ibm-object-csi-node-xxx
pod。oc delete pod ibm-object-csi-node-vk8jf -n ibm-object-csi-operator
輸出範例
pod "ibm-object-csi-node-vk8jf" deleted
-
列出
ibm-object-csi-operator
命名空間中的 pod。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>
-
取得
ibm-object-csi-operator-controller-manager
的日誌以追蹤應用程式 Pod 恢復。 請注意,Operator 會刪除應用程式的 Pod,以便重新啟動它們。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"}