トランスポート・エンドポイントが接続されないのはなぜですか?
仮想プライベート・クラウド クラシック・インフラストラクチャー
以下の手順はIBM Cloud Object Storageプラグインにのみ適用されます。
PVC を作成するとき、次のようなエラー・メッセージが表示されます。
Transport endpoint is not connected.
問題の原因を見つけるには、inspectnode
ポッドをデプロイしてシステム・ログを収集します。
ロギング情報を収集するためのステップに従います。
-
debug-pvc.yaml
ファイルを作成し、ibm.io/debug-level: "info"
というアノテーションとibm.io/curl-debug: "true"
というアノテーションを指定します。apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: ibm.io/auto-create-bucket: "false" ibm.io/auto-delete-bucket: "false" ibm.io/bucket: <bucket-name> # Enter the name of your bucket. ibm.io/secret-name: <cos-secret-name> # Enter the name of your Kubernetes secret that contains your COS credentails ibm.io/debug-level: "info" ibm.io/curl-debug: "true" name: debug-pvc namespace: default spec: storageClassName: ibmc-s3fs-standard-perf-regional accessModes: - ReadWriteOnce resources: requests: storage: 10Gi
-
クラスター内に
debug-pvc
PVC を作成します。kubectl create -f debug-pvc.yaml>
-
アプリを再デプロイし、
debug-pvc
を参照します。 あるいは、以下のサンプル・ポッドを使用することもできます。apiVersion: v1 kind: Pod metadata: name: debug-pod spec: volumes: - name: nginx persistentVolumeClaim: claimName: cos-debug containers: - name: nginx image: nginx volumeMounts: - mountPath: /debug name: nginx
-
以下のデーモン・セット構成ファイルを
inspectnode-ds.yaml
として保存します。 先に作成したPVCを参照するアプリをデプロイした後、「Transport endpoint is not connected
エラーが発生したときにDaemonSetをデプロイしてログを収集します。apiVersion: apps/v1 kind: DaemonSet metadata: namespace: default name: ibm-inspectnode labels: app: ibm-inspectnode spec: selector: matchLabels: app: ibm-inspectnode updateStrategy: type: RollingUpdate template: metadata: labels: app: ibm-inspectnode spec: tolerations: - operator: "Exists" hostNetwork: true containers: - name: inspectnode image: alpine:latest command: ["/bin/sh"] args: ["-c", "while true; do msg=$(date); echo $msg; sleep 30; done"] securityContext: runAsUser: 0 volumeMounts: - mountPath: /host/var/log name: host-log volumes: - name: host-log hostPath: path: /var/log
-
Transport endpoint is not connected
エラーが発生した場合に、クラスター内に DaemonSet を作成します。kubectl create -f ./inspectnode-ds.yaml
-
inspectnode
ポッドの名前を取得します。kubectl get pods -n default -l app=ibm-inspectnode -o wide
-
inspectnode
ポッドからのログをローカル・マシンにコピーします。 コピー・コマンドで、ディレクトリーに名前を付けて、ログの元となるノードを識別できるようにします。 例えば、node-one.log
です。 ディレクトリー名にノード IP を使用することもできます (例:10.XXX.XX.XXX.log
)。kubectl cp <inspectnode_pod_name>:/host/var/log ./<node_name>.log
-
syslog
およびs3fslog
でTransport endpoint
のエラーに関する情報を確認します。 サポート・チケットを開き、収集したログ・ファイルを共有します。 -
デプロイした
ibm-inspectnode
デーモン・セットを削除します。kubectl delete daemonset ibm-inspectnode
-
問題が解決しない場合は、サポートにお問い合わせください。 サポート Case を開きます。 ケースの詳細には、関連するログファイル、エラーメッセージ、コマンド出力を必ず含めてください。