Por que o terminal de transporte não está conectado?

Resolva problemas relacionados à camada de transporte e aos pontos finais d Cloud Object Storage.

Nuvem privada virtual Infraestrutura clássica

As etapas a seguir se aplicam apenas ao plug-in IBM Cloud Object Storage.

Ao criar uma PVC, você vê uma mensagem de erro semelhante à seguinte:

Transport endpoint is not connected.

Para encontrar a causa do problema, reúna logs do sistema implementando um pod do inspectnode.

Siga as etapas para reunir informações de criação de log.

  1. Crie um arquivo debug-pvc.yaml e especifique as anotações ibm.io/debug-level: "info" e 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
    
  2. Crie a PVC debug-pvc em seu cluster.

    oc create -f debug-pvc.yaml
    
  3. Reimplemente seu aplicativo e consulte o debug-pvc. Como alternativa, é possível usar o pod de amostra a seguir.

    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
    
  4. Salve o arquivo de configuração daemonset a seguir como inspectnode-ds.yaml. Depois de implantar um aplicativo que faça referência ao PVC criado anteriormente, implante o DaemonSet quando ocorrer o erro “ Transport endpoint is not connected ” para coletar os logs.

    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
    
  5. Crie o DaemonSet no cluster quando o erro Transport endpoint is not connected ocorrer.

    oc create -f ./inspectnode-ds.yaml
    
  6. Obtenha o nome do pod inspectnode.

    oc get pods -n default -l app=ibm-inspectnode -o wide
    
  7. Copie os logs do pod inspectnode para a sua máquina local. No comando de cópia, dê um nome ao seu diretório para que seja possível identificar de qual nó os logs são provenientes. Por exemplo, node-one.log. Também é possível usar o IP do nó no nome do diretório, por exemplo: 10.XXX.XX.XXX.log.

    oc cp <inspectnode_pod_name>:/host/var/log  ./<node_name>.log
    
  8. Consulte os arquivos syslog e s3fslog para obter informações sobre o erro “ Transport endpoint ”. Abra um chamado de suporte e compartilhe os arquivos de log reunidos.

  9. Exclua o daemonset ibm-inspectnode implementado.

    oc delete daemonset ibm-inspectnode
    
  10. Se o problema persistir, entre em contato com o suporte. Abrir um caso de suporte. Nos detalhes do caso, certifique-se de incluir todos os arquivos de registro, mensagens de erro ou saídas de comando relevantes.