Depuración de problemas de CLI comunes con clústeres

Nube privada virtual Infraestructura clásica

Revise las siguientes razones comunes de los problemas de conexión de CLI o de los errores de los mandatos.

El cortafuegos impide ejecutar mandatos de CLI

Cuando ejecuta los mandatos ibmcloud, kubectl o calicoctl desde la CLI, fallan.

Puede que tenga políticas de red corporativas que impidan el acceso desde el sistema local a los puntos finales públicos mediante proxies o cortafuegos.

Permita el acceso TCP para que funciones los mandatos de CLI.

Esta tarea requiere el rol de acceso a la plataforma Administrador de IBM Cloud IAM para el clúster.

Los mandatos kubectl no funcionan

Cuando ejecuta comandos kubectl contra su cluster, sus comandos fallan con un mensaje de error similar al siguiente ejemplo.

No resources found.
Error from server (NotAcceptable): unknown (get nodes)
invalid object doesn't have additional properties
error: No Auth Provider found for name "oidc"

Tiene una versión distinta de kubectl que la versión del clúster.

Kubernetes no admite kubectl versiones de cliente que tengan 2 o más versiones de diferencia con la versión del servidor (n +/- 2). Si utiliza un clúster de Kubernetes de comunidad, es posible que también tenga la versión de Red Hat OpenShift de kubectl, que no funciona con clústeres de Kubernetes de comunidad.

Para comprobar la versión de kubectl del cliente frente a la versión del servidor de clúster, ejecute kubectl version --short.

Instale la versión de la CLI que coincida con la versión del clúster.

Si tiene varios clústeres con diferentes versiones o diferentes plataformas de contenedores como Red Hat OpenShift, descargue cada archivo binario de la versión kubectl en un directorio distinto. A continuación, puede configurar un alias en el perfil de la interfaz de línea de mandatos (CLI) local para que apunte al directorio de archivos binarios de kubectl que coincide con la versión kubectl del clúster con el que desea trabajar, o bien puede utilizar una herramienta como brew switch kubernetes-cli <major.minor>.

Tiempo de espera excedido de los mandatos kubectl

Si ejecuta mandatos como kubectl exec, kubectl attach, kubectl proxy, kubectl port-forward o kubectl logs, ve el siguiente mensaje.

<workerIP>:10250: getsockopt: connection timed out
kubectl -n kube-system logs metrics-server-65fc69c6b7-f682d -c metrics-server
Error from server: Get “https://10.38.193.213:10250/containerLogs/kube-system/metrics-server-65fc69c6b7-f682d/metrics-server”: EOF
kubectl -n kube-system exec -it metrics-server-65fc69c6b7-f682d -c metrics-server -- sh
Error from server: error dialing backend: EOF

Revise y complete los pasos siguientes para la versión de clúster.

  • La versión 1.21 y posterior de la conexión VPN de Konnectivity entre el nodo maestro y los nodos trabajadores no funciona correctamente.
  • El clúster tiene habilitados puntos finales de servicio privados y públicos.
  • No hay habilitados puntos finales de servicio ni VRF en la cuenta.

Para determinar si hay puntos finales de servicio y VRF en la cuenta, ejecute ibmcloud account show. Busque la salida siguiente.

VRF Enabled:                        true
Service Endpoint Enabled:           true

Para determinar si el clúster clásico tiene habilitado el punto final de servicio público y privado, ejecute ibmcloud ks cluster get -c <cluster_id>. Busque una salida similar a la siguiente.

Public Service Endpoint URL:    https://c105.<REGION>.containers.cloud.ibm.com:<port>
Private Service Endpoint URL:   https://c105.private.<REGION>.containers.cloud.ibm.com:<port>

Si el clúster cumple estas condiciones, habilite los puntos finales de servicio y VRF para la cuenta.