El mapeo de la pila de Ambassador Edge no está funcionando.
Estoy intentando configurar el stack de borde del embajador en mi clúster local de Kubernetes (Docker Desktop).
Después de todas las implementaciones, verifiqué el espacio de nombres del embajador y todo está funcionando como se esperaba. Además, tengo mi implementación (pod y servicios) funcionando. He cambiado el servicio del stack de borde del embajador a nodeport para poder acceder y probar localmente. Además, he agregado la URL en mi archivo HOST.
Aquí está el detalle:
kubectl get svc -n ambassador
kubectl get svc -n sample-on-ambassador-edgestack
edgestack-listener yaml:
--------------------------
apiVersion: getambassador.io/v3alpha1
kind: Listener
metadata:
name: my-listener-80
namespace: sample-on-ambassador-edgestack
spec:
port: 80
protocol: HTTP
securityModel: XFP
hostBinding:
namespace:
from: ALL
apiVersion: getambassador.io/v3alpha1
kind: Listener
metadata:
name: my-listener-8080
namespace: sample-on-ambassador-edgestack
spec:
port: 8080
protocol: HTTP
securityModel: XFP
hostBinding:
namespace:
from: ALL
edgestack-binding yaml
-------------------------
apiVersion: getambassador.io/v3alpha1
kind: Mapping
metadata:
name: my-mappingrules
namespace: sample-on-ambassador-edgestack
spec:
hostname: "local.edgestack.com"
prefix: /apple/
service: my-apple-service.sample-on-ambassador-edgestack
NOTA: He utilizado Service: pod.service desde arriba.
Con esto, estoy obteniendo la página de inicio de edgestack con http://local.edgestack.com
pero si escribo: local.edgestack.com/apple/ estoy obteniendo una página de error 404.
lo mismo con el comando curl:
curl -i http://local.edgestack.com:32510/apple/
HTTP/1.1 404 Not Found
date: Thu, 02 Dec 2021 01:51:48 GMT
server: envoy
content-length: 0
davy.ai
Solución
El error 404 al acceder a
local.edgestack.com/apple/
indica que la solicitud no está siendo enrutada correctamente por el ingress de Ambassador.Basado en la configuración proporcionada, parece que el servicio especificado en el mapeo
my-apple-service.sample-on-ambassador-edgestack
puede no haber sido configurado correctamente. El servicio especificado en el mapeo debería corresponder al nombre del servicio especificado en la salida dekubectl get svc
.Para solucionar este problema, puede seguir estos pasos:
my-apple-service
está en ejecución y disponible ejecutandokubectl get svc -n sample-on-ambassador-edgestack
.kubectl port-forward -n sample-on-ambassador-edgestack svc/my-apple-service 8080
y luego accediendo a `http://localhost:8080` en su navegador. Si esto funciona, muestra que el servicio está configurado correctamente.ambassador
usandokubectl logs -f -n ambassador -l app.kubernetes.io/name=ambassador
para ver si se reportan errores.prefix
especificado en el mapeo (/apple/
) coincida con la ruta del servicio al que está tratando de acceder.Basado en la salida proporcionada, parece que el servicio
my-apple-service
no está disponible en la IP de clúster o puede ocurrir un error 404 si elprefix
especificado en el mapeo no está definido correctamente. Verifique la configuración del servicio y el mapeo correspondiente para resolver el problema.