Dépannage des problèmes de pod et de service sur les noeuds virtuels à l'aide du proxy kubectl plutôt que du port-forward kubectl

Découvrez comment utiliser le proxy kubectl (plutôt que kubectl port-forward) pour afficher la sortie de l'application afin de 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 exécutée dans des pods d'un cluster Kubernetes, et pour accéder aux ressources internes du cluster sans les exposer au réseau Internet public, il est souvent utile de visualiser la sortie de l'application comme si elle s'exécutait localement sur votre ordinateur.

Lorsque vous utilisez des pools de noeuds gérés, vous pouvez utiliser la commande kubectl port-forward sur votre ordinateur local pour visualiser la sortie des applications exécutées dans des pods sur des noeuds gérés. L'utilisation de la commande kubectl port-forward crée un tunnel sécurisé entre une machine locale et une application exécutée sur un cluster Kubernetes. Le tunnel permet au trafic de circuler entre les deux adresses, ce qui vous permet d'afficher la sortie de l'application à partir de l'ordinateur local.

Toutefois, lorsque vous utilisez des pools de noeuds virtuels, vous ne pouvez pas utiliser la commande kubectl port-forward pour afficher 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 :

  1. Si vous ne l'avez pas encore fait, installez kubectl (reportez-vous à la documentation kubectl).
  2. Si vous ne l'avez pas encore fait, suivez les étapes permettant de configurer le fichier de configuration Kubeconfig du cluster en vue d'une utilisation en local et (si nécessaire) de définir la variable d'environnement KUBECONFIG de sorte qu'elle pointe vers le fichier. Vous devez configurer votre propre fichier Kubeconfig. Vous ne pouvez pas accéder à un cluster à l'aide d'un fichier Kubeconfig configuré par un autre utilisateur. Vous devrez peut-être également définir la variable d'environnement OCI_CLI_PROFILE sur le nom du profil défini dans le fichier de configuration de la CLI avant d'exécuter les commandes kubectl. Reportez-vous à Configuration de l'accès local aux clusters.
  3. Créez un déploiement sur le cluster dans l'espace de noms par défaut. Par exemple, entrez la commande suivante :
    kubectl create -f https://k8s.io/examples/application/deployment.yaml
  4. Obtenez la liste des pods en saisissant ce qui suit :
    kubectl get pods
  5. Dans une fenêtre de terminal locale, démarrez un proxy en saisissant ce qui suit :
    kubectl proxy --port=8080
  6. Dans une autre fenêtre de terminal locale, vous pouvez désormais :
    • Affichez la sortie du pod en saisissant la commande suivante :
      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/
    • Afficher la sortie du service en saisissant :
      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.