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.
- 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 lsoworker ls. In questo caso, aggiorna il tuo cluster e i tuoi nodi di lavoro alla versione più recente. - 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.