feat(aula-14): adicionar Istio Traffic Splitting com canary deployment

- Instala Istio (base + istiod + ingressgateway)
- Configura Kiali e Jaeger para observabilidade
- Deploy de app-backend v1 e v2 com traffic splitting 90/10
- Integra com Victoria Metrics da aula-12
- Inclui teste-stress.sh para validar distribuição de tráfego
- Tráfego externo passa pelo Istio Gateway via NGINX Ingress
This commit is contained in:
ArgoCD Setup
2026-01-24 07:40:51 -03:00
parent 3e53328214
commit 3860809e5c
22 changed files with 1545 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: app-backend-gateway
namespace: istio
spec:
selector:
istio: ingressgateway
servers:
- port:
number: 80
name: http
protocol: HTTP
hosts:
- "${APP_HOST}"
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
name: app-backend-external
namespace: istio
spec:
hosts:
- "${APP_HOST}"
gateways:
- app-backend-gateway
http:
- route:
- destination:
host: app-backend
subset: v1
weight: 90
- destination:
host: app-backend
subset: v2
weight: 10

View File

@@ -0,0 +1,29 @@
# Jaeger - Distributed Tracing
# Tracing para visualizar requisições através do mesh
provisionDataStore:
cassandra: false
allInOne:
enabled: true
image: jaegertracing/all-in-one
tag: "1.62"
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "500m"
storage:
type: memory
collector:
enabled: false
query:
enabled: false
agent:
enabled: false

View File

@@ -0,0 +1,24 @@
# Kiali - Service Mesh Observability
# Dashboard para visualizar tráfego do Istio
server:
web_root: /kiali
auth:
strategy: anonymous
deployment:
accessible_namespaces:
- "**"
ingress:
enabled: false
external_services:
prometheus:
url: http://vmsingle-victoria-metrics-k8s-stack.monitoring:8429
tracing:
enabled: true
in_cluster_url: http://tracing.istio-system:16685/jaeger
use_grpc: true
grafana:
enabled: false