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

Al ejecutar mandatos ibmcloud, kubectl,oc 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 o oc no funcionan

Al ejecutar comandos kubectl o oc en el clúster, los comandos fallan con un mensaje de error similar al del ejemplo siguiente.

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 oc 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 al intentar conectar con un pod

Intenta conectar con un pod, por ejemplo cuando inicia una sesión con oc exec o cuando obtener registros con oc logs. El pod está en buen estado, pero aparece un mensaje de error similar al del ejemplo siguiente.

Error from server: Get https://<10.xxx.xx.xxx>:<port>/<address>: dial tcp <10.xxx.xx.xxx>:<port>: connect: connection timed out

El servidor VPN está experimentando problemas de configuración que impiden acceder al pod desde su dirección interna.

Antes de empezar: acceda al clúster de Red Hat OpenShift.

  1. Compruebe si hay actualizaciones de clúster y de nodo trabajador disponibles; para ello visualice los detalles del clúster y del nodo trabajador en la consola o con un mandato cluster ls o worker ls. Si es así, actualice el clúster y los nodos trabajadores a la versión más reciente.
  2. Reinicie el pod VPN borrándolo. Se planifica otro pod VPN. Cuando su estado (STATUS) sea En ejecución (Running), intente conectar con el pod con el que antes no ha podido hacerlo.
    oc delete pod -n kube-system -l app=vpn
    

error 500 al intentar iniciar sesión en un clúster Red Hat OpenShift a través de oc login

Cuando intenta iniciar sesión en un clúster Red Hat OpenShift a través de oc login por primera vez y aparece un mensaje de error similar al del ejemplo siguiente.

$ oc login SERVER -u apikey -p <APIKEY>
The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y

Error from server (InternalError): Internal error occurred: unexpected response: 500

Algunos cambios recientes en el rol de usuario de IAM todavía no se han sincronizado con el clúster de Red Hat OpenShift.

Sincronice la información de usuario de IAM con el clúster de Red Hat OpenShift. Una vez realizada la sincronización inicial del usuario, las siguientes sincronizaciones de RBAC se deben realizar automáticamente.

Antes de empezar:

Acceda al clúster de Red Hat OpenShift.

Para sincronizar la información de IAM para el usuario, tiene 2 opciones:

  • Inicie sesión en su clúster desde la consola Red Hat OpenShift.
  • Establezca el contexto de línea de mandatos para el clúster ejecutando el mandato ibmcloud oc cluster config --cluster CLUSTER.

Si utiliza una clave de API para un ID funcional u otro usuario, asegúrese de iniciar una sesión como el usuario correcto.

Después de que el usuario afectado complete la sincronización de IAM, el administrador del clúster puede verificar que el usuario existe en el clúster listando los usuarios con el mandato oc get users.

Faltan proyectos o fallan los mandatos oc y kubectl

Nube privada virtual Infraestructura clásica

No ve todos los proyectos a los que tiene acceso. Cuando intenta ejecutar mandatos oc o kubectl, ve un error parecido al siguiente.

No resources found.
Error from server (Forbidden): <resource> is forbidden: User "IAM#user@email.com" can't list <resources> at the cluster scope: no RBAC policy matched

Debe descargar los archivos de configuración de admin de su clúster para ejecutar comandos que requieran el rol de clúster cluster-admin.

Ejecute ibmcloud oc cluster config --cluster <cluster_name_or_ID> --admin y vuelva a intentarlo.