¿Por qué los pods permanecen en estado pendiente?

Soluciona los problemas de los pods que permanecen en estado Pendiente y no se pueden programar en los nodos de trabajo disponibles.

Nube privada virtual Infraestructura clásica

Cuando se ejecuta kubectl get pods, puede ver que los pods permanecen en el estado Pendiente.

Si acaba de crear el clúster de Kubernetes, es posible que los nodos trabajadores aún se estén configurando.

Si se trata de un clúster ya existente, los siguientes problemas podrían ser la causa.

  • Quizá no tiene suficiente capacidad en el clúster para desplegar el pod.
  • Es posible que el pod haya superado una solicitud o límite de recursos.

Esta tarea requiere el IBM Cloudrol de acceso a plataforma IAM de Administrador en el clúster y el rol de acceso al servicio de Gestor en todos los espacios de nombres.

Si acaba de crear el clúster de Kubernetes, ejecute el siguiente mandato y espere que se hayan inicializado los nodos trabajadores.

kubectl get nodes

Si este clúster ya existe, compruebe la capacidad del clúster.

  1. Establezca el proxy con el número de puerto predeterminado.

    kubectl proxy
    
  2. Abra el panel de control de Kubernetes.

    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
    
  3. Compruebe si tiene suficiente capacidad en el clúster para desplegar el pod.

  4. Si no tiene suficiente capacidad en el clúster, cambie el tamaño de la agrupación de nodos trabajadores para añadir más nodos.

    1. Revise los tamaños y los tipos actuales de las agrupaciones de nodos trabajadores para decidir cuál va a redimensionar.
        ibmcloud ks worker-pool ls
        ```
    2. Cambie el tamaño de las agrupaciones de nodos trabajadores para añadir más nodos a cada zona que abarque la agrupación.
    
    ```sh {: pre}
        ibmcloud ks worker-pool resize --worker-pool WORKER_POOL --cluster CLUSTER_NAME_OR_ID --size-per-zone WORKERS_PER_ZONE
        ```
    
  5. Opcional: compruebe las solicitudes de recursos de pod.

    1. Confirme que los valores de resources.requests no son mayores que la capacidad del nodo trabajador. Por ejemplo, si el pod solicita 4 núcleos cpu: 4000m, pero el tamaño del nodo de trabajo es solo de 2 núcleos, el pod no se puede implementar.
        kubectl get pod <pod_name> -o yaml
        ```
    2. Si la solicitud supera la capacidad disponible, añade un grupo de trabajadores con nodos de trabajo que puedan atenderla. Para obtener más información, consulte [Adición de nodos trabajadores a clústeres clásicos](/docs/containers?topic=containers-add-workers-classic) o [Adición de nodos trabajadores a clústeres de VPC](/docs/containers?topic=containers-add-workers-vpc).
    
    
  6. Si tus pods siguen en estado pendiente después de que el nodo de trabajo se haya desplegado por completo, consulta la documentación de Kubernetes para solucionar el problema del estado pendiente de tu pod.