es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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

enter image description here

kubectl get svc -n sample-on-ambassador-edgestack

enter image description here

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
enter image description here

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

Tags:  , ,

Answer

  1. Avatar for 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 de kubectl get svc.

    Para solucionar este problema, puede seguir estos pasos:

    1. Verifique si el servicio my-apple-service está en ejecución y disponible ejecutando kubectl get svc -n sample-on-ambassador-edgestack.
    2. Si el servicio está en ejecución, verifique si es accesible directamente en su puerto (a veces llamado IP de clúster) usando 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.
    3. Verifique los registros del pod de Ambassador en el namespace ambassador usando kubectl logs -f -n ambassador -l app.kubernetes.io/name=ambassador para ver si se reportan errores.
    4. Asegúrese de que el 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 el prefix especificado en el mapeo no está definido correctamente. Verifique la configuración del servicio y el mapeo correspondiente para resolver el problema.

Comments are closed.