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 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 non funzionano

Quando si eseguono i comandi di kubectl 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 kubectl 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>.

I comandi kubectl vanno in timeout

Se esegui comandi quali kubectl exec, kubectl attach, kubectl proxy, kubectl port-forward o kubectl logs, vedi il seguente messaggio.

<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

Esamina e completa la seguente procedura per la tua versione del cluster.

  • La versione 1.21 e successive della connessione VPN di Konnectivity tra il nodo master e i nodi di lavoro non funziona correttamente.
  • Il cluster ha entrambi gli endpoint del servizio pubblico e privato abilitati.
  • Gli endpoint del servizio o VRF non sono abilitati nell'account.

Per determinare se il VRF e gli endpoint del servizio sono abilitati nel tuo account, esegui ibmcloud account show. Cercate il seguente risultato.

VRF Enabled:                        true
Service Endpoint Enabled:           true

Per determinare se il tuo cluster classico ha entrambi gli endpoint del servizio pubblico e privato abilitati, esegui ibmcloud ks cluster get -c <cluster_id>. Ricercare un output simile al seguente.

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>

Se il tuo cluster soddisfa queste condizioni, abilita gli endpoint del servizio e VRF per l'account.