Dépannage des problèmes de pod et de service sur les noeuds virtuels à l'aide d'un mandataire kubectl plutôt que de l'avance de port kubectl
Découvrez comment utiliser le mandataire kubectl (plutôt que kubectl port-forward) pour afficher la sortie de l'application pour vous aider à résoudre les problèmes liés aux pods exécutés sur des noeuds virtuels.
Lors du test et du débogage d'une application s'exécutant dans des pods d'une grappe Kubernetes, et pour accéder aux ressources internes de la grappe sans les exposer au réseau Internet public, il est souvent utile de voir la sortie de l'application comme si elle s'exécutait localement sur votre ordinateur.
Lorsque vous utilisez des groupes de noeuds gérés, vous pouvez utiliser la commande kubectl port-forward
sur votre machine locale pour voir la sortie des applications exécutées dans des pods sur des noeuds gérés. La commande kubectl port-forward
crée un tunnel sécurisé entre une machine locale et une application exécutée sur une grappe Kubernetes. Le tunnel permet au trafic de circuler entre les deux points d'extrémité, ce qui vous permet de voir la sortie de l'application à partir de la machine locale.
Toutefois, lors de l'utilisation de groupes de noeuds virtuels, vous ne pouvez pas utiliser la commande kubectl port-forward
pour voir la sortie des applications exécutées dans des pods sur des noeuds virtuels. Vous pouvez également utiliser la commande kubectl proxy
dans le même but.
Par exemple :
- Si ce n'est pas déjà fait, installez kubectl (voir la documentation sur kubectl).
- Si vous ne l'avez pas encore fait, suivez les étapes pour configurer le fichier de configuration kubeconfig de la grappe afin de l'utiliser localement et (s'il y a lieu) définissez la variable d'environnement KUBECONFIG pour qu'elle pointe vers le fichier. Notez que vous devez configurer votre propre fichier kubeconfig. Vous ne pouvez pas accéder à une grappe à l'aide d'un fichier kubeconfig configuré par un autre utilisateur. Vous devrez peut-être également régler la variable d'environnement OCI_CLI_PROFILE au nom du profil défini dans le fichier de configuration de l'interface de ligne de commande avant d'exécuter les commandes kubectl. Voir Configuration de l'accès local aux grappes.
- Créez un déploiement sur la grappe dans l'espace de noms par défaut. Par exemple, en entrant :
kubectl create -f https://k8s.io/examples/application/deployment.yaml
- Obtenez la liste des pods en entrant :
kubectl get pods
- Dans une fenêtre de terminal locale, démarrez un proxy en entrant :
kubectl proxy --port=8080
- Dans une autre fenêtre de terminal local, vous pouvez maintenant :
- Voir la sortie du pod en entrant :
curl http://localhost:8080/api/v1/namespaces/<namespace-name>/pods/<pod-name>/proxy/
Par exemple :
curl http://localhost:8080/api/v1/namespaces/default/pods/nginx-5b6b9d4766-qs9tc/proxy/
- Voir la sortie du service en entrant :
curl http://localhost:8080/api/v1/namespaces/<namespace-name>/services/<service-name>/proxy/
Par exemple :
curl http://localhost:8080/api/v1/namespaces/default/services/nginx-service/proxy/
Dans les deux cas, notez la barre oblique ( / ) à la fin de la commande.
- Voir la sortie du pod en entrant :