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
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 diferentesutbuild1
yutbuild1-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:
utbuild1
yutbuild1-admin
estén en ejecución y sean accesibles. Esto se puede hacer usando los comandoskubectl get services
ykubectl get pods
.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.
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 parauri
prefixados con/v3/api/products/search
al hostutbuild1
.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.