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 VirtualService de Istio no está funcionando para mi configuración.

Tengo un clúster de Kubernetes digitalocean con Istio instalado en él. Obtengo un error 404 no encontrado al abrir las API en la aplicación Postman. Aquí está mi archivo yaml de vs-gateway:

apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: ut-gateway
spec:
  selector:
    istio: ingressgateway
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: utbuild1
spec:
  hosts:
  - "*"
  gateways:
  - ut-gateway
  http:
  - match:
    - uri:
        prefix: /v3/api/products/search
    rewrite:
      uri: /api/products/search # or /
    route:
    - destination:
        host: utbuild1 # pods/service created using istio-k8s-single-deployment.yaml (this service has 3 pods)
  - match:
    - uri:
        prefix: /v4admin/api
    route:
    - destination:
        host: utbuild1-admin # pod/service created using istio-k8s-single-deployment.yaml
Tags:  ,

Answer

  1. Avatar for davy.ai

    El archivo YAML proporcionado es una configuración de VirtualService y Gateway para Istio, específicamente para enrutar el tráfico a dos endpoints diferentes /v3/api/products/search y /v4admin/api a dos hosts diferentes utbuild1 y utbuild1-admin.

    El problema que se enfrenta es un error 404 al acceder a las APIs en Postman. Puede haber varias razones para este error, pero aquí hay algunos pasos que se pueden tomar para solucionar el problema:

    1. Verificar si los servicios y pods están en ejecución: Asegurarse de que los servicios y pods que corresponden a los hosts utbuild1 y utbuild1-admin estén en ejecución y sean accesibles. Esto se puede hacer usando los comandos kubectl get services y kubectl get pods.
    2. Verificar la configuración de Istio Gateway y VirtualService: Asegurarse de que las configuraciones de Istio Gateway y VirtualService sean correctas y que estén apuntando a los servicios y puertos correctos. El archivo YAML proporcionado parece ser correcto, pero es importante verificar si los puertos correctos están abiertos y si los servicios son accesibles.

    3. Verificar si las URLs son correctas: Asegurarse de que las URLs que se utilizan para acceder a las APIs en Postman sean correctas y coincidan con los endpoints especificados en la configuración de VirtualService. Por ejemplo, si se utiliza la URL http://<istio-ingressgateway>/v3/api/products/search, entonces el VirtualService debería estar enrutar el tráfico para uri prefixados con /v3/api/products/search al host utbuild1.

    4. Verificar si hay errores en los logs: Verificar los logs de los servicios y componentes de Istio en busca de cualquier error o problema que pueda estar causando el error 404.

    Siguiendo estos pasos, podemos identificar y solucionar cualquier problema que cause el error 404 al acceder a las APIs en Postman.

Comments are closed.