Workshop completo: aulas 08-10 com Talos, n8n e GitLab na Hetzner
Aula 08 - Cluster Kubernetes HA: - Setup interativo com OpenTofu para Talos na Hetzner - CCM, CSI Driver, Cluster Autoscaler, Metrics Server - NGINX Ingress com LoadBalancer (HTTP/HTTPS/SSH) Aula 09 - n8n na Hetzner: - Deploy via Helm com PostgreSQL e Redis - Suporte multi-tenant com add-client.sh - Integração com Hetzner CSI para volumes persistentes Aula 10 - GitLab na Hetzner: - Setup agnóstico: CloudFlare (trusted proxies) ou Let's Encrypt - Anti-affinity para distribuir webservice/sidekiq em nós diferentes - Container Registry e SSH via TCP passthrough - Documentação do erro 422 e solução com trustedCIDRsForXForwardedFor Melhorias gerais: - READMEs atualizados com arquitetura e troubleshooting - Scripts cleanup.sh para todas as aulas - CLAUDE.md atualizado com contexto do projeto
This commit is contained in:
88
aula-08/nginx-ingress-values.yaml
Normal file
88
aula-08/nginx-ingress-values.yaml
Normal file
@@ -0,0 +1,88 @@
|
||||
# =============================================================================
|
||||
# NGINX Ingress Controller - Configuração para Hetzner Cloud
|
||||
# =============================================================================
|
||||
#
|
||||
# Este values configura o NGINX Ingress com:
|
||||
# - LoadBalancer da Hetzner (provisionado automaticamente pelo CCM)
|
||||
# - Suporte a TCP para SSH do GitLab (porta 22)
|
||||
# - Uso de rede privada para comunicação com os nodes
|
||||
#
|
||||
# Uso:
|
||||
# helm upgrade --install nginx-ingress ingress-nginx/ingress-nginx \
|
||||
# -n ingress-nginx --create-namespace \
|
||||
# -f nginx-ingress-values.yaml
|
||||
#
|
||||
# =============================================================================
|
||||
|
||||
controller:
|
||||
# Configuração do Service LoadBalancer
|
||||
service:
|
||||
type: LoadBalancer
|
||||
|
||||
# Annotations específicas para Hetzner Cloud
|
||||
annotations:
|
||||
# Nome do LoadBalancer no painel Hetzner
|
||||
load-balancer.hetzner.cloud/name: "k8s-ingress"
|
||||
|
||||
# Localização do LoadBalancer (mesmo datacenter do cluster)
|
||||
load-balancer.hetzner.cloud/location: "nbg1"
|
||||
|
||||
# Usar rede privada para comunicação com nodes
|
||||
# Mais seguro e sem custo de tráfego
|
||||
load-balancer.hetzner.cloud/use-private-ip: "true"
|
||||
|
||||
# Tipo do LoadBalancer (lb11 é o menor/mais barato)
|
||||
load-balancer.hetzner.cloud/type: "lb11"
|
||||
|
||||
# Health check
|
||||
load-balancer.hetzner.cloud/health-check-interval: "5s"
|
||||
load-balancer.hetzner.cloud/health-check-timeout: "3s"
|
||||
load-balancer.hetzner.cloud/health-check-retries: "3"
|
||||
|
||||
# ==========================================================================
|
||||
# TCP Services - Para SSH do GitLab
|
||||
# ==========================================================================
|
||||
# Mapeia porta externa -> namespace/service:porta
|
||||
# O GitLab Shell roda no namespace gitlab, service gitlab-gitlab-shell
|
||||
tcp:
|
||||
22: "gitlab/gitlab-gitlab-shell:22"
|
||||
|
||||
# Configuração do controller
|
||||
config:
|
||||
# Habilitar proxy protocol se necessário
|
||||
# use-proxy-protocol: "true"
|
||||
|
||||
# Timeouts
|
||||
proxy-connect-timeout: "10"
|
||||
proxy-read-timeout: "120"
|
||||
proxy-send-timeout: "120"
|
||||
|
||||
# Body size para uploads grandes (GitLab, n8n)
|
||||
proxy-body-size: "0"
|
||||
|
||||
# Keepalive
|
||||
keep-alive: "75"
|
||||
keep-alive-requests: "1000"
|
||||
|
||||
# Recursos do controller
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
|
||||
# Métricas para monitoramento
|
||||
metrics:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
enabled: false # Habilitar se usar Prometheus Operator
|
||||
|
||||
# Admission webhook
|
||||
admissionWebhooks:
|
||||
enabled: true
|
||||
|
||||
# Default backend (opcional)
|
||||
defaultBackend:
|
||||
enabled: false
|
||||
Reference in New Issue
Block a user