Risoluzione dei problemi di pod e servizi sui nodi virtuali utilizzando il proxy kubectl anziché l'inoltro della porta kubectl
Scopri come utilizzare il proxy kubectl (anziché kubectl port-forward) per visualizzare l'output dell'applicazione per risolvere i problemi con i pod in esecuzione sui nodi virtuali.
Quando si esegue il test e il debug di un'applicazione in esecuzione in pod in un cluster Kubernetes e si accede alle risorse interne del cluster senza esporle alla rete Internet pubblica, è spesso utile visualizzare l'output dell'applicazione come se fosse in esecuzione localmente sul computer.
Quando si utilizzano i pool di nodi gestiti, è possibile utilizzare il comando kubectl port-forward
sul computer locale per visualizzare l'output delle applicazioni in esecuzione nei pod sui nodi gestiti. L'uso del comando kubectl port-forward
crea un tunnel sicuro tra un computer locale e un'applicazione in esecuzione in un cluster Kubernetes. Il tunnel consente al traffico di fluire tra i due endpoint, consentendo di visualizzare l'output dell'applicazione dal computer locale.
Tuttavia, quando si utilizzano i pool di nodi virtuali, non è possibile utilizzare il comando kubectl port-forward
per visualizzare l'output delle applicazioni in esecuzione nei pod sui nodi virtuali. In alternativa, utilizzare il comando kubectl proxy
allo stesso scopo.
Ad esempio:
- Se non lo si è già fatto, installare kubectl (consultare la documentazione kubectl).
- Se non è già stato fatto, attenersi alla procedura per impostare il file di configurazione kubeconfig del cluster da utilizzare localmente e, se necessario, impostare la variabile di ambiente KUBECONFIG in modo che punti al file. Si noti che è necessario impostare il proprio file kubeconfig. Non è possibile accedere a un cluster utilizzando un file kubeconfig impostato da un altro utente. Potrebbe essere necessario anche impostare la variabile di ambiente OCI_CLI_PROFILE sul nome del profilo definito nel file di configurazione dell'interfaccia CLI prima di eseguire i comandi kubectl. Vedere Impostazione dell'accesso locale ai cluster.
- Creare una distribuzione nel cluster nello spazio di nomi predefinito. Ad esempio, immettendo:
kubectl create -f https://k8s.io/examples/application/deployment.yaml
- Ottenere l'elenco dei pod immettendo:
kubectl get pods
- In una finestra di terminale locale, avviare un proxy immettendo:
kubectl proxy --port=8080
- In un'altra finestra del terminale locale, è ora possibile:
- Visualizza output pod immettendo:
curl http://localhost:8080/api/v1/namespaces/<namespace-name>/pods/<pod-name>/proxy/
Ad esempio:
curl http://localhost:8080/api/v1/namespaces/default/pods/nginx-5b6b9d4766-qs9tc/proxy/
- Visualizzare l'output del servizio immettendo:
curl http://localhost:8080/api/v1/namespaces/<namespace-name>/services/<service-name>/proxy/
Ad esempio:
curl http://localhost:8080/api/v1/namespaces/default/services/nginx-service/proxy/
In entrambi i casi, prendere nota della barra ( / ) alla fine del comando.
- Visualizza output pod immettendo: