Solución de problemas de pod y servicio en nodos virtuales mediante proxy de kubectl en lugar de kubectl port-forward

Descubra cómo utilizar el proxy de kubectl (en lugar de kubectl port-forward) para ver la salida de la aplicación para ayudarle a resolver problemas con pods que se ejecutan en nodos virtuales.

Al probar y depurar una aplicación que se ejecuta en pods en un cluster de Kubernetes, y para acceder a los recursos internos del cluster sin exponerlos a la red pública de Internet, a menudo es útil ver la salida de la aplicación como si se estuviera ejecutando localmente en la computadora.

Al utilizar pools de nodos gestionados, puede utilizar el comando kubectl port-forward en la máquina local para ver la salida de las aplicaciones que se ejecutan en pods en nodos gestionados. El uso del comando kubectl port-forward crea un túnel seguro entre una máquina local y una aplicación que se ejecuta en un cluster de Kubernetes. El túnel permite que el tráfico fluya entre los dos puntos finales, lo que le permite ver la salida de la aplicación desde la máquina local.

Sin embargo, al utilizar pools de nodos virtuales, no puede utilizar el comando kubectl port-forward para ver la salida de las aplicaciones que se ejecutan en pods en nodos virtuales. Como alternativa, utilice el comando kubectl proxy para el mismo fin.

Por ejemplo:

  1. Si aún no lo ha hecho, instale kubectl (consulte la documentación de kubectl).
  2. Si todavía no lo ha hecho, siga los pasos para configurar el archivo de configuración kubeconfig del cluster para su uso de forma local y (si es necesario) defina la variable de entorno KUBECONFIG para que apunte al archivo. Tenga en cuenta que debe configurar su propio archivo kubeconfig. No puede acceder a un cluster utilizando un archivo kubeconfig que haya configurado un usuario diferente. Es posible que también deba configurar la variable de entorno OCI_CLI_PROFILE con el nombre del perfil definido en el archivo de configuración de la CLI antes de ejecutar los comandos de kubectl. Consulte Configuración del acceso local a los clusters.
  3. Cree un despliegue en el cluster en el espacio de nombres por defecto. Por ejemplo, introduzca:
    kubectl create -f https://k8s.io/examples/application/deployment.yaml
  4. Obtenga la lista de pods introduciendo:
    kubectl get pods
  5. En una ventana de terminal local, inicie un proxy introduciendo:
    kubectl proxy --port=8080
  6. En una ventana de terminal local diferente, ahora puede:
    • Para ver la salida de pod, introduzca:
      curl http://localhost:8080/api/v1/namespaces/<namespace-name>/pods/<pod-name>/proxy/

      Por ejemplo:

      curl http://localhost:8080/api/v1/namespaces/default/pods/nginx-5b6b9d4766-qs9tc/proxy/
    • Para ver la salida del servicio, introduzca:
      curl http://localhost:8080/api/v1/namespaces/<namespace-name>/services/<service-name>/proxy/

      Por ejemplo:

      curl http://localhost:8080/api/v1/namespaces/default/services/nginx-service/proxy/

    En ambos casos, anote la barra inclinada ( / ) al final del comando.