Debug di problemi comuni della CLI con i cluster

Virtual Private Cloud Infrastruttura classica

Riesamina i seguenti motivi comuni per i problemi di connessione o gli errori di comando della CLI.

Il firewall impedisce l'esecuzione dei comandi della CLI

Quando esegui i comandi ibmcloud, kubectl,oc o calicoctl dalla CLI, hanno esito negativo.

Puoi avere delle politiche di rete aziendali che impediscono l'accesso dal tuo sistema locale agli endpoint pubblici tramite i proxy o i firewall

Consenti l'accesso TCP per il funzionamento dei comandi della CLI.

Questa attività richiede Ruolo di accesso della piattaforma Amministratore IBM Cloud IAM per il cluster.

I comandi kubectl o oc non funzionano

Quando si eseguono i comandi kubectl o oc sul cluster, i comandi falliscono con un messaggio di errore simile al seguente esempio.

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"

Disponi di una versione differente di kubectl rispetto alla tua versione del cluster.

Kubernetes non supporta le versioni del client kubectl che differiscono di 2 o più versioni dalla versione del server (n +/- 2). Se si utilizza un cluster comunitario Kubernetes, si potrebbe avere anche la versione Red Hat OpenShift di kubectl, che non funziona con i cluster comunitari Kubernetes.

Per controllare la versione kubectl del tuo cluster rispetto alla versione del server del cluster, esegui oc version --short.

Installa la versione della CLI che corrisponde alla versione del tuo cluster.

Se si dispone di più cluster con versioni diverse o piattaforme di contenitori diverse, come Red Hat OpenShift, scaricare ogni file binario della versione kubectl in una directory separata. Quindi, si può impostare un alias nel profilo dell'interfaccia a riga di comando (CLI) locale per puntare alla directory dei file binari kubectl che corrisponde alla versione kubectl del cluster con cui si vuole lavorare, oppure si può usare uno strumento come brew switch kubernetes-cli <major.minor>.

Timeout quando tenti di connetterti a un pod

Tenti di connetterti a un pod, ad esempio accedendo con oc exec o richiamando i log con oc logs. Il pod è sano, ma viene visualizzato un messaggio di errore simile al seguente esempio.

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

Il server VPN ha problemi di configurazione che impediscono l'accesso al pod dal suo indirizzo interno.

Prima di iniziare: accedi al tuo cluster Red Hat OpenShift.

  1. Controlla se sono disponibili gli aggiornamenti di un cluster o di un nodo di lavoro visualizzando i dettagli del cluster e del nodo di lavoro nella console o in un comando cluster ls o worker ls. In questo caso, aggiorna il tuo cluster e i tuoi nodi di lavoro alla versione più recente.
  2. Riavviare il pod VPN eliminandolo. Viene pianificato un altro pod VPN. Quando il suo stato (STATUS) è Running, prova a connetterti al pod a cui non potevi connetterti in precedenza.
    oc delete pod -n kube-system -l app=vpn
    

Errore 500 durante il tentativo di accedere a un cluster di Red Hat OpenShift tramite oc login

Quando si tenta di accedere per la prima volta a un cluster Red Hat OpenShift tramite oc login e si visualizza un messaggio di errore simile al seguente esempio.

$ 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

Alcune recenti modifiche al ruolo utente IAM non sono ancora state sincronizzate con il cluster Red Hat OpenShift.

Sincronizzare le informazioni dell'utente IAM al cluster Red Hat OpenShift. Una volta eseguita la sincronizzazione utente iniziale, dovrebbe verificarsi automaticamente un'ulteriore sincronizzazione RBAC.

Prima di cominciare:

Accedi al tuo cluster Red Hat OpenShift.

Per sincronizzare le informazioni IAM per l'utente, hai 2 opzioni:

  • Accedi al tuo cluster dalla console Red Hat OpenShift.
  • Imposta il contesto della riga di comando per il cluster eseguendo il comando ibmcloud oc cluster config --cluster CLUSTER.

Se si utilizza una chiave API per un ID funzionale o un altro utente, assicurarsi di accedere come utente corretto.

Una volta che l'utente interessato ha completato la sincronizzazione IAM, l'amministratore del cluster può verificare che l'utente esista nel cluster elencando gli utenti con il comando oc get users.

Progetti mancanti oppure i comandi oc e kubectl non riescono

Virtual Private Cloud Infrastruttura classica

Non si vedono tutti i progetti a cui si ha accesso. Quando provi a eseguire i comandi oc o kubectl, vedi un errore simile al seguente:

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

Per eseguire i comandi che richiedono il ruolo del cluster cluster-admin, è necessario scaricare i file di configurazione di admin per il proprio cluster.

Eseguire ibmcloud oc cluster config --cluster <cluster_name_or_ID> --admin e riprovare.