Usar características de capa 7

Al agregar un proxy de waypoint a tu flujo de tráfico, puedes habilitar más características de Istio. Los waypoints se configuran usando la API de Gateway de Kubernetes.

Enrutamiento y adjunto de políticas

La API de Gateway define la relación entre los objetos (como rutas y gateways) en términos de adjunto.

  • Los objetos de ruta (como HTTPRoute) incluyen una forma de hacer referencia a los recursos padre a los que se quieren adjuntar.
  • Los objetos de política se consideran metarrecursos: objetos que aumentan el comportamiento de un objeto destino de una manera estándar.

Las tablas a continuación muestran el tipo de adjunto que se configura para cada objeto.

Enrutamiento de tráfico

Con un proxy de waypoint desplegado, puedes usar los siguientes tipos de enrutamiento de tráfico:

NombreEstado de la característicaAdjunto
HTTPRouteBetaparentRefs
TLSRouteAlfaparentRefs
TCPRouteAlfaparentRefs

Consulta la documentación de gestión del tráfico para ver la gama de características que se pueden implementar usando estas rutas.

Seguridad

Sin un waypoint instalado, solo puedes usar políticas de seguridad de capa 4. Al agregar un waypoint, obtienes acceso a las siguientes políticas:

NombreEstado de la característicaAdjunto
AuthorizationPolicy (incluidas las características L7)BetatargetRefs
RequestAuthenticationBetatargetRefs

Consideraciones para las políticas de autorización

En el modo ambient, las políticas de autorización pueden ser dirigidas (para la aplicación de ztunnel) o adjuntas (para la aplicación de waypoint). Para que una política de autorización se adjunte a un waypoint, debe tener un targetRef que haga referencia al waypoint, o a un Servicio que use ese waypoint.

El ztunnel no puede aplicar políticas L7. Si una política con reglas que coinciden con los atributos L7 se dirige con un selector de carga de trabajo (en lugar de adjuntarse con un targetRef), de modo que la aplique un ztunnel, fallará de forma segura al convertirse en una política de DENEGACIÓN.

Consulta la guía de políticas L4 para obtener más información, incluido cuándo adjuntar políticas a los waypoints para casos de uso de solo TCP.

Observabilidad

El conjunto completo de métricas de tráfico de Istio es exportado por un proxy de waypoint.

Extensión

Como el proxy de waypoint es una implementación de Envoy, algunos de los mecanismos de extensión que están disponibles para Envoy en el modo sidecar también están disponibles para los proxies de waypoint.

NombreEstado de la característicaAdjunto
WasmPluginAlfatargetRefs

Lee más sobre cómo extender los waypoints con plugins de WebAssembly.

Las configuraciones de extensión se consideran políticas según la definición de la API de Gateway.

Alcance de rutas o políticas

Una ruta o política puede tener un alcance para aplicarse a todo el tráfico que atraviesa un proxy de waypoint, o solo a servicios específicos.

Adjuntar a todo el proxy de waypoint

Para adjuntar una ruta o una política a todo el waypoint, de modo que se aplique a todo el tráfico inscrito para usarlo, establece Gateway como el valor de parentRefs o targetRefs, según el tipo.

Para limitar una política AuthorizationPolicy para que se aplique al waypoint llamado default para el namespace default:

apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
  name: view-only
  namespace: default
spec:
  targetRefs:
  - kind: Gateway
    group: gateway.networking.k8s.io
    name: default
  action: ALLOW
  rules:
  - from:
    - source:
        namespaces: ["default", "istio-system"]
    to:
    - operation:
        methods: ["GET"]

Adjuntar a un servicio específico

También puedes adjuntar una ruta a uno o más servicios específicos dentro del waypoint. Establece Service como el valor de parentRefs o targetRefs, según corresponda.

Para aplicar la HTTPRoute de reviews al servicio reviews en el namespace default:

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: reviews
  namespace: default
spec:
  parentRefs:
  - group: ""
    kind: Service
    name: reviews
    port: 9080
  rules:
  - backendRefs:
    - name: reviews-v1
      port: 9080
      weight: 90
    - name: reviews-v2
      port: 9080
      weight: 10
¿Fue útil esta información?
¿Tienes alguna sugerencia para mejorar?

¡Gracias por tus comentarios!