Ejecuta Ingress en minikube y su dirección mostrará localhost.
Soy nuevo en k8s. Desplegué un ingreso en minikube y descubrí que su dirección es ‘localhost’, lo cual no debería ser, supongo. Por esto, no sé cómo continuar, ya que debería editar /etc/hosts/ para agregar un elemento DNS, pero no pude.
Y este es mi archivo de configuración:
kiloson@ubuntu:~$ cat kubia-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: kubia
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: kubia.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: kubia-nodeport
port:
number: 80
Versión de minikube:
kiloson@ubuntu:~$ minikube version
minikube version: v1.24.0
commit: 76b94fb3c4e8ac5062daf70d60cf03ddcc0a741b
Información de Ubuntu:
kiloson@ubuntu:~$ neofetch
.-/+oossssoo+/-. kiloson@ubuntu
`:+ssssssssssssssssss+:` --------------
-+ssssssssssssssssssyyssss+- SO: Ubuntu 20.04.3 LTS x86_64
.ossssssssssssssssssdMMMNysssso. Host: Máquina Virtual 7.0
/ssssssssssshdmmNNmmyNMMMMhssssss/ Kernel: 5.11.0-1022-azure
+ssssssssshmydMMMMMMMNddddyssssssss+ Tiempo de actividad: 2 horas, 33 minutos
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/ Paquetes: 648 (dpkg), 4 (snap)
.ssssssssdMMMNhsssssssssshNMMMdssssssss. Shell: bash 5.0.17
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Terminal: /dev/pts/0
ossyNMMMNyMMhsssssssssssssshmmmhssssssso CPU: Intel Xeon E5-2673 v4 (2) @ 2.294GHz
ossyNMMMNyMMhsssssssssssssshmmmhssssssso GPU: 00:08.0 Microsoft Corporation Hyper-V Virtual VGA
+sssshhhyNMMNyssssssssssssyNMMMysssssss+ Memoria: 1493MiB / 7959MiB
.ssssssssdMMMNhsssssssssshNMMMdssssssss.
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
+sssssssssdmydMMMMMMMMddddyssssssss+
/ssssssssssshdmNNNNmyNMMMMhssssss/
.ossssssssssssssssssdMMMNysssso.
-+sssssssssssssssssyyyssss+-
`:+ssssssssssssssssss+:`
.-/+oossssoo/+-.'
davy.ai
Solución:
La razón por la cual la dirección de ingreso (
ingress address
) eslocalhost
puede deberse al hecho de que estás utilizando un servicio de tipoNodePort
. Cuando creas un servicio de tipoNodePort
, Kubernetes automáticamente escucha en un puerto de alto número en cada nodo del clúster (el mismo puerto en cada nodo) y realiza una proxificación de ese puerto desde la IP externa de cada nodo hacia el mismo puerto en el pod asociado. Puedes verificar esto ejecutando el siguiente comando para obtener la IP del nodo y el puerto donde tu aplicación está expuesta:Verás una salida similar a la siguiente:
En este ejemplo, la dirección IP del nodo donde se está ejecutando Minikube es
192.168.49.2
. Para acceder a tu aplicación, puedes utilizar esta dirección IP y el NodePort al cual el servicio está mapeado. Puedes obtener el valor de NodePort del servicio ejecutando:Aquí,
kubia-nodeport
es el nombre de tu servicio.Con el NodePort y la dirección IP, puedes acceder a tu aplicación utilizando la siguiente URL:
Si deseas acceder a tu aplicación a través de un nombre de host específico (por ejemplo,
kubia.example.com
), puedes hacerlo agregando una entrada a tu archivo/etc/hosts
. Sin embargo, dado que estás ejecutando Minikube localmente, necesitas actualizar el archivo/etc/hosts
en la máquina virtual (VM) de Minikube. Puedes hacer esto ejecutando el siguiente comando:Aquí, reemplaza
NODE_IP
con la dirección IP de tu nodo Minikube.Después de ejecutar este comando, deberías poder acceder a tu aplicación en `http://kubia.example.com:NODE_PORT`.