ASD

Istio Traffic Management

Configura la gestión de tráfico de Istio: enrutamiento, balanceo de carga, circuit breakers y despliegues canary para políticas de service mesh en producción.

Estrellas
38.8k

en todo el repo

Actividad
34

0–100, la ruta de este skill

Actualizado
hace 5 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
1.7k tok

53 tok en reposo

Paquete
1 archivo

7 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add wshobson/agents --skill istio-traffic-management --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Provee plantillas YAML de Istio para VirtualService, DestinationRule, Gateway y ServiceEntry
  • Configura enrutamiento, canary deployments, circuit breakers y balanceo de carga
  • Define reintentos, timeouts, mirroring de tráfico e inyección de fallos
  • Ofrece comandos istioctl para depurar rutas, endpoints y logs de proxy

Úsalo cuando

  • Configurar enrutamiento servicio-a-servicio
  • Implementar despliegues canary o blue-green
  • Configurar circuit breakers y reintentos
  • Realizar traffic mirroring o fault injection para chaos engineering

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Configura un canary deployment con Istio para mi servicio
    • Necesito un circuit breaker en mi DestinationRule
    • Cómo hago traffic mirroring hacia un entorno de test con Istio

    SKILL.md

    En inglés

    Istio Traffic Management

    Comprehensive guide to Istio traffic management for production service mesh deployments.

    When to Use This Skill

    • Configuring service-to-service routing
    • Implementing canary or blue-green deployments
    • Setting up circuit breakers and retries
    • Load balancing configuration
    • Traffic mirroring for testing
    • Fault injection for chaos engineering

    Core Concepts

    1. Traffic Management Resources

    Resource Purpose Scope
    VirtualService Route traffic to destinations Host-based
    DestinationRule Define policies after routing Service-based
    Gateway Configure ingress/egress Cluster edge
    ServiceEntry Add external services Mesh-wide

    2. Traffic Flow

    Client → Gateway → VirtualService → DestinationRule → Service
                       (routing)        (policies)        (pods)
    

    Templates

    Template 1: Basic Routing

    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: reviews-route
      namespace: bookinfo
    spec:
      hosts:
        - reviews
      http:
        - match:
            - headers:
                end-user:
                  exact: jason
          route:
            - destination:
                host: reviews
                subset: v2
        - route:
            - destination:
                host: reviews
                subset: v1
    ---
    apiVersion: networking.istio.io/v1beta1
    kind: DestinationRule
    metadata:
      name: reviews-destination
      namespace: bookinfo
    spec:
      host: reviews
      subsets:
        - name: v1
          labels:
            version: v1
        - name: v2
          labels:
            version: v2
        - name: v3
          labels:
            version: v3
    

    Template 2: Canary Deployment

    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: my-service-canary
    spec:
      hosts:
        - my-service
      http:
        - route:
            - destination:
                host: my-service
                subset: stable
              weight: 90
            - destination:
                host: my-service
                subset: canary
              weight: 10
    ---
    apiVersion: networking.istio.io/v1beta1
    kind: DestinationRule
    metadata:
      name: my-service-dr
    spec:
      host: my-service
      trafficPolicy:
        connectionPool:
          tcp:
            maxConnections: 100
          http:
            h2UpgradePolicy: UPGRADE
            http1MaxPendingRequests: 100
            http2MaxRequests: 1000
      subsets:
        - name: stable
          labels:
            version: stable
        - name: canary
          labels:
            version: canary
    

    Template 3: Circuit Breaker

    apiVersion: networking.istio.io/v1beta1
    kind: DestinationRule
    metadata:
      name: circuit-breaker
    spec:
      host: my-service
      trafficPolicy:
        connectionPool:
          tcp:
            maxConnections: 100
          http:
            http1MaxPendingRequests: 100
            http2MaxRequests: 1000
            maxRequestsPerConnection: 10
            maxRetries: 3
        outlierDetection:
          consecutive5xxErrors: 5
          interval: 30s
          baseEjectionTime: 30s
          maxEjectionPercent: 50
          minHealthPercent: 30
    

    Template 4: Retry and Timeout

    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: ratings-retry
    spec:
      hosts:
        - ratings
      http:
        - route:
            - destination:
                host: ratings
          timeout: 10s
          retries:
            attempts: 3
            perTryTimeout: 3s
            retryOn: connect-failure,refused-stream,unavailable,cancelled,retriable-4xx,503
            retryRemoteLocalities: true
    

    Template 5: Traffic Mirroring

    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: mirror-traffic
    spec:
      hosts:
        - my-service
      http:
        - route:
            - destination:
                host: my-service
                subset: v1
          mirror:
            host: my-service
            subset: v2
          mirrorPercentage:
            value: 100.0
    

    Template 6: Fault Injection

    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: fault-injection
    spec:
      hosts:
        - ratings
      http:
        - fault:
            delay:
              percentage:
                value: 10
              fixedDelay: 5s
            abort:
              percentage:
                value: 5
              httpStatus: 503
          route:
            - destination:
                host: ratings
    

    Template 7: Ingress Gateway

    apiVersion: networking.istio.io/v1beta1
    kind: Gateway
    metadata:
      name: my-gateway
    spec:
      selector:
        istio: ingressgateway
      servers:
        - port:
            number: 443
            name: https
            protocol: HTTPS
          tls:
            mode: SIMPLE
            credentialName: my-tls-secret
          hosts:
            - "*.example.com"
    ---
    apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: my-vs
    spec:
      hosts:
        - "api.example.com"
      gateways:
        - my-gateway
      http:
        - match:
            - uri:
                prefix: /api/v1
          route:
            - destination:
                host: api-service
                port:
                  number: 8080
    

    Load Balancing Strategies

    apiVersion: networking.istio.io/v1beta1
    kind: DestinationRule
    metadata:
      name: load-balancing
    spec:
      host: my-service
      trafficPolicy:
        loadBalancer:
          simple: ROUND_ROBIN # or LEAST_CONN, RANDOM, PASSTHROUGH
    ---
    # Consistent hashing for sticky sessions
    apiVersion: networking.istio.io/v1beta1
    kind: DestinationRule
    metadata:
      name: sticky-sessions
    spec:
      host: my-service
      trafficPolicy:
        loadBalancer:
          consistentHash:
            httpHeaderName: x-user-id
            # or: httpCookie, useSourceIp, httpQueryParameterName
    

    Best Practices

    Do's

    • Start simple - Add complexity incrementally
    • Use subsets - Version your services clearly
    • Set timeouts - Always configure reasonable timeouts
    • Enable retries - But with backoff and limits
    • Monitor - Use Kiali and Jaeger for visibility

    Don'ts

    • Don't over-retry - Can cause cascading failures
    • Don't ignore outlier detection - Enable circuit breakers
    • Don't mirror to production - Mirror to test environments
    • Don't skip canary - Test with small traffic percentage first

    Debugging Commands

    # Check VirtualService configuration
    istioctl analyze
    
    # View effective routes
    istioctl proxy-config routes deploy/my-app -o json
    
    # Check endpoint discovery
    istioctl proxy-config endpoints deploy/my-app
    
    # Debug traffic
    istioctl proxy-config log deploy/my-app --level debug
    

    Reproducido de wshobson/agents bajo licencia MIT. Leer esta página en markdown.

    Archivos

    1 archivo en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere un clúster con Istio ya instalado y el CLI istioctl disponible.

    Detalles

    Creador
    wshobson
    Licencia
    MIT
    Recursos incluidos
    Solo SKILL.md
    Repositorio
    wshobson/agents
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de wshobson/agents

    Este repo incluye 180 skills. Si instalas uno, normalmente ya tienes los demás.

    Úsalo al seleccionar y colocar iconos, imágenes, SVGs, diagramas o infografías de apoyo aprobados en un PPTX editable.

    Costo de contexto al activarse
    344 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo cuando pidan optimizar un prompt, mejorar su rendimiento, diseñar una plantilla, aplicar chain-of-thought, few-shot prompting o técnicas avanzadas de prompt engineering para producción.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    el mes pasado
    herramientas desarrollo

    Úsalo al redactar o reparar una especificación JSON con coordenadas explícitas para un PPTX editable.

    Costo de contexto al activarse
    489 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para validar o reparar un PPTX editable en cuanto a geometría, accesibilidad, editabilidad nativa, linaje de fuente e integridad del paquete OOXML.

    Costo de contexto al activarse
    409 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para analizar un PPTX de referencia en modo solo lectura: estructura, tema, tipografía, ritmo de layout, diagnósticos, catálogos de plantillas derivados o inspección segura del paquete OOXML.

    Costo de contexto al activarse
    689 tok
    Tamaño del paquete
    8 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo al preparar la narrativa, las fuentes y el contexto de diseño para un nuevo deck PPTX editable.

    Costo de contexto al activarse
    415 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Skills relacionados

    Configura Turborepo para builds de monorepo eficientes con caché local y remota. Útil al configurar Turborepo, optimizar pipelines de build o implementar caching distribuido.

    Costo de contexto al activarse
    2k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 5 meses
    devops infraestructura

    Implementa observabilidad integral para service meshes, incluyendo tracing distribuido, métricas y visualización. Útil para monitoreo de mesh, depuración de latencia y SLOs.

    Costo de contexto al activarse
    708 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    devops infraestructura

    Define e implementa Indicadores (SLI) y Objetivos (SLO) de nivel de servicio con error budgets y alertas, para establecer metas de fiabilidad y prácticas SRE.

    Costo de contexto al activarse
    1.8k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    devops infraestructura