feat: adicionar aula-16 (Flagger), remover Jaeger da aula-14 e integrar tracing Istio na aula-15
- aula-16: nova aula de canary deployment automatizado com Flagger - aula-14: removido Jaeger (tracing movido para aula-15), corrigido nome do serviço Victoria Metrics, adicionado rate limiting no Kiali - aula-15: adicionado receiver Zipkin no OTel Collector para receber traces do Istio, corrigida porta do Tempo (3100→3200), integração automática com Istio quando detectado - aula-03: corrigido MAX_REQUESTS de 10 para 3 (valor padrão) - CLAUDE.md: adicionada aula-16 na documentação
This commit is contained in:
+17
-17
@@ -1,6 +1,6 @@
|
||||
# Aula 14 - Istio Traffic Splitting
|
||||
|
||||
Demonstração de **app-backend deployment** usando Istio para dividir tráfego entre duas versões da aplicação.
|
||||
Demonstração de **canary deployment manual** usando Istio para dividir tráfego entre duas versões da aplicação.
|
||||
|
||||
## Motivação
|
||||
|
||||
@@ -29,9 +29,9 @@ Em produção, lançar uma nova versão diretamente para 100% dos usuários é a
|
||||
│ │ bug │ │ ok │ │
|
||||
│ └──────┘ └──────┘ │
|
||||
│ │
|
||||
│ ┌─────────┐ ┌────────┐ ┌─────────────────┐│
|
||||
│ │ Kiali │ │ Jaeger │ │ Victoria Metrics││
|
||||
│ └─────────┘ └────────┘ └─────────────────┘│
|
||||
│ ┌─────────┐ ┌─────────────────┐ │
|
||||
│ │ Kiali │ │ Victoria Metrics │ │
|
||||
│ └─────────┘ └─────────────────┘ │
|
||||
└─────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
@@ -72,11 +72,10 @@ aula-14/
|
||||
│ ├── deployment-v2.yaml
|
||||
│ ├── service.yaml
|
||||
│ ├── destination-rule.yaml # Define subsets v1, v2
|
||||
│ └── virtual-service.yaml # Traffic splitting (90/10)
|
||||
│ ├── virtual-service.yaml # Traffic splitting (90/10)
|
||||
│ └── ingress-kiali.yaml
|
||||
└── istio/
|
||||
├── kiali-values.yaml
|
||||
├── jaeger-values.yaml
|
||||
└── gateway.yaml
|
||||
└── kiali-values.yaml
|
||||
```
|
||||
|
||||
## Instalação
|
||||
@@ -89,9 +88,9 @@ cd aula-14
|
||||
O script irá:
|
||||
1. Verificar pré-requisitos (incluindo Victoria Metrics da aula-12)
|
||||
2. Coletar configuração (domínio, registry, TLS)
|
||||
3. Instalar Istio (istio-base + istiod)
|
||||
4. Instalar Kiali e Jaeger (métricas via Victoria Metrics)
|
||||
5. Configurar Ingress para dashboards
|
||||
3. Instalar Istio (istio-base + istiod + ingressgateway)
|
||||
4. Instalar Kiali (dashboard do service mesh, métricas via Victoria Metrics)
|
||||
5. Configurar Ingress com Basic Auth e rate limiting
|
||||
6. Build e push das imagens v1 e v2
|
||||
7. Deploy da aplicação com traffic splitting 90/10
|
||||
|
||||
@@ -152,9 +151,9 @@ kubectl patch virtualservice app-backend -n istio --type='json' \
|
||||
{"op":"replace","path":"/spec/http/0/route/1/weight","value":50}]'
|
||||
```
|
||||
|
||||
### 4. Verificar traces no Jaeger
|
||||
### 4. Observar no Kiali
|
||||
|
||||
Abra o Jaeger e observe os traces das requisições passando pelo mesh.
|
||||
Volte ao Kiali e veja o tráfego redistribuído igualmente entre v1 e v2.
|
||||
|
||||
### 5. Rollout completo para v2
|
||||
|
||||
@@ -185,9 +184,6 @@ kubectl logs -n istio -l app=app-backend,version=v2 -f
|
||||
|
||||
# Port-forward para Kiali (alternativa ao Ingress)
|
||||
kubectl port-forward svc/kiali -n istio-system 20001:20001
|
||||
|
||||
# Port-forward para Jaeger
|
||||
kubectl port-forward svc/tracing -n istio-system 16686:80
|
||||
```
|
||||
|
||||
## Cleanup
|
||||
@@ -196,7 +192,7 @@ kubectl port-forward svc/tracing -n istio-system 16686:80
|
||||
./cleanup.sh
|
||||
```
|
||||
|
||||
Remove Istio, addons e namespace da aplicação.
|
||||
Remove Istio, Kiali e namespace da aplicação.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
@@ -228,3 +224,7 @@ Verificar se DestinationRule existe:
|
||||
```bash
|
||||
kubectl get destinationrule app-backend -n istio -o yaml
|
||||
```
|
||||
|
||||
### E o tracing?
|
||||
|
||||
O tracing distribuído (ver o caminho de um request individual) é configurado na **aula-15** com Grafana Tempo + OpenTelemetry. O Istio envia traces automaticamente para o Tempo após a aula-15 ser instalada.
|
||||
|
||||
Reference in New Issue
Block a user