K8s em Exemplos: Canary Deployments
| Canary deployments liberam novas versões para um pequeno subconjunto de tráfego primeiro. Se o canary estiver saudável, aumente gradualmente o tráfego até o rollout completo. Se problemas ocorrerem, faça rollback com impacto mínimo. Use para: mitigação de risco, testes A/B, validação de features, requisitos de compliance. |
| canary-basic.yaml | |
| Canary básico com dois Deployments compartilhando um Service. Ambos têm a mesma label app então o Service roteia para ambos. Ajuste contagem de réplicas para controlar divisão de tráfego (9 stable + 1 canary = 10% tráfego canary). | |
| canary-service.yaml | |
| O Service seleciona Pods apenas pela label | |
| canary-ingress.yaml | |
| Canary baseado em Ingress com annotations nginx-ingress. A annotation | |
| canary-header.yaml | |
| Roteamento canary baseado em header. Apenas requisições com headers específicos vão para o canary. Útil para testes internos antes do rollout público. Combine com weight para rollout gradual. | |
| terminal | |
| Para canary automatizado com análise, instale Argo Rollouts. Ele fornece o CRD Rollout que substitui Deployment e adiciona estratégias canary/blue-green com promoção e rollback automáticos. | |
| canary-analysis.yaml | |
| Argo Rollouts fornece análise automática de canary. Defina métricas para verificar (taxa de erro, latência) e thresholds. O rollout automaticamente progride ou faz rollback baseado nos resultados da análise. | |
| analysis-template.yaml | |
| AnalysisTemplate define como medir saúde do canary. Consulte Prometheus para taxas de erro, compare contra thresholds. Se a análise falhar, o rollout automaticamente aborta. | |
| terminal | |
| Monitore progresso do canary com kubectl ou Argo Rollouts CLI. Acompanhe mudança de tráfego, resultados de análise e status do rollout. Promova ou aborte manualmente se necessário. | |