Error durante la solicitud de proxy kubectl proxy

Estoy tratando de seguir esta documentación. https://kubernetes.io/docs/tasks/administer-cluster/access-cluster-api/.

Después de ejecutar este comando

kubectl proxy --port=8080 &

Tengo la salida

Starting to serve on 127.0.0.1:8080

Sin embargo, cuando ejecuto "curl http://localhost:8080/api/" para golpear el servidor, obtengo esta respuesta

dial tcp: lookup localhost: no such host

¿Alguna idea es por qué recibiría esta respuesta?

EDIT: Estoy usando una VPN para conectarme a la red corporativa. Cuando deshabilita el VPN todavía recibo el mismo mensaje para ambos localhost y 127.0.0.1 (samo mensaje exacto para ambos).

No estoy usando kubeadm.

Cuando corro host localhost Tengo esta salida

localhost has address 127.0.0.1
localhost has IPv6 address ::1

cat /etc/hosts

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost
# Added by Docker Desktop
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section

Pregunta hecha hace 3 años, 5 meses, 2 días - Por algorithmwhiz


3 Respuestas:

  • Es posible que tenga http_proxy en el sistema , por lo que pruebe el curl con noproxy como sigue:

    curl --noproxy '*' http://localhost:8080

    Si desea comprobar si se establece el http_proxy :

    echo $http_proxy

    Respondida el Dec 16, 2020 a las 14:24 - por techtrailblazer

    Votos positivos: 0 | Votos negativos: 0

  • El problema que estás experimentando parece estar relacionado con la resolución de nombres de dominio en tu entorno. Cuando ejecutas el comando curl http://localhost:8080/api/, el sistema intenta resolver el nombre de dominio "localhost" pero no puede encontrar una entrada correspondiente en el archivo de hosts.

    Una forma de solucionar este problema es agregar una entrada para "localhost" en tu archivo de hosts. Puedes hacerlo agregando la siguiente línea al archivo /etc/hosts:

    
    
    • 0.0.1 localhost

    Después de hacer esta modificación, intenta nuevamente ejecutar el comando curl http://localhost:8080/api/ y debería funcionar correctamente. Además, asegúrate de que no haya configuraciones en tu VPN que estén afectando la resolución de nombres de dominio en tu sistema.

    Espero que esta solución te ayude a resolver el problema. ¡Déjame saber si necesitas más ayuda!

    Respondida el Dec 17, 2020 a las 14:25 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El error "dial tcp: lookup localhost: no such host" indica que tu equipo no puede resolver el nombre de host "localhost" en una dirección IP. Esto puede deberse a varias razones:

    • Archivo hosts incorrecto: Revisa el archivo "/etc/hosts" para asegurarte de que contiene una entrada para "localhost" que apunte a "127.0.0.1".
    • Configuración de DNS incorrecta: Verifica la configuración de DNS de tu equipo para asegurarte de que esté configurado para utilizar servidores DNS válidos.
    • VPN activa: Si estás utilizando una VPN, puede estar interfiriendo con la resolución de nombres de host. Intenta deshabilitar la VPN y vuelve a intentarlo.
    • Kubernetes no se inicia correctamente: Asegúrate de que el servidor Kubernetes se esté ejecutando correctamente y que el comando "kubectl proxy" se esté ejecutando en el mismo equipo.

    Para solucionar el problema, intenta los siguientes pasos:

    • Comprueba el archivo "/etc/hosts": Abre el archivo "/etc/hosts" (normalmente ubicado en "/etc/") y busca la entrada para "localhost". Debería tener este aspecto:
    
    
    • 0.0.1 localhost

    Si no está presente, añádelo y guarda el archivo.

    • Verifica la configuración de DNS: Abre la configuración de red de tu equipo y asegúrate de que los servidores DNS estén configurados correctamente. Puedes utilizar servidores DNS públicos como 8.8.8.8 y 8.8.4.4.
    • Deshabilita la VPN: Si estás utilizando una VPN, deshabilítala temporalmente y vuelve a intentarlo.
    • Reinicia el servidor Kubernetes: Si el servidor Kubernetes no se está ejecutando, reinícialo y vuelve a ejecutar el comando "kubectl proxy".
    • Comprueba el estado del proxy de kubectl: Ejecuta el comando "kubectl proxy status" para verificar el estado del proxy. Debería mostrar que el proxy se está ejecutando en el puerto 8080.

    Después de realizar estos pasos, vuelve a intentar acceder al servidor Kubernetes a través del proxy con el comando "curl". Si sigues teniendo problemas, proporciona más detalles sobre tu configuración y los mensajes de error que estás recibiendo.

    Respondida el Dec 17, 2020 a las 14:36 - por Gemini

    Votos positivos: 0 | Votos negativos: 0