🚪 Cap 12: Ingress Controllers - Exemplos Práticos
Demonstrações práticas de roteamento dinâmico em containers, plugins de API Gateway e configuração do Envoy.
🗺️ Autodescoberta de Serviços com Traefik em Mermaid
sequenceDiagram
autonumber
actor DevOps as Engenheiro DevOps
actor Docker as Docker Daemon
actor Traefik as Traefik Ingress
actor User as Usuário Web
DevOps->>Docker: docker run --label "traefik.http.routers.app.rule=Host(`meuapp.com`)"
Docker-->>Traefik: Evento de Novo Container Criado
Note over Traefik: Registra Rota e Emite Certificado SSL Automaticamente! 🔒
User->>Traefik: GET https://meuapp.com
Traefik->>Docker: Encaminha para o novo container ⚡
📄 Exemplo 1: Configuração Básica do Envoy Proxy (envoy.yaml)
static_resources:
listeners:
- name: listener_0
address:
socket_address: { address: 0.0.0.0, port_value: 10000 }
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ["*"]
routes:
- match: { prefix: "/" }
route: { cluster: service_google }
http_filters:
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
clusters:
- name: service_google
connect_timeout: 0.25s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: service_google
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address: { address: www.google.com, port_value: 443 }
transport_socket:
name: envoy.transport_sockets.tls
typed_config:
"@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext