- Aula 08: nginx-ingress TCP passthrough gitlab→gitea, comments
- Aula 09: add-client.sh API GitLab→Gitea
- Aula 11: node-bugado deployment image registry.kube.quest→gitea.kube.quest
- Aula 12: setup.sh/cleanup.sh API GitLab→Gitea, ArgoCD repoURL
- Aula 13: k8s manifests, benchmarks: registry.kube.quest→gitea.kube.quest,
gitlab-registry→gitea-registry, GITLAB_TOKEN→GITEA_TOKEN
- Aula 14: comments GitLab→Gitea
- README raiz: arquitetura, tabela, DNS
132 lines
4.3 KiB
YAML
132 lines
4.3 KiB
YAML
# =============================================================================
|
|
# Pre-pull DaemonSet - Alternativa para Cold Start
|
|
# =============================================================================
|
|
# Garante que imagens críticas estejam em cache em TODOS os nodes.
|
|
# Quando KEDA/Cluster Autoscaler criar pods, imagens já estarão disponíveis.
|
|
# =============================================================================
|
|
#
|
|
# COMO USAR:
|
|
# 1. Edite a lista de initContainers com suas imagens
|
|
# 2. kubectl apply -f prepull-daemonset.yaml
|
|
# 3. Aguarde todos os pods ficarem Ready
|
|
# 4. Imagens estarão em cache em todos os nodes
|
|
#
|
|
# QUANDO USAR:
|
|
# - Databases (PostgreSQL, MongoDB) que precisam de 100% dos arquivos
|
|
# - Apps que precarregam (n8n, Laravel Octane)
|
|
# - Qualquer imagem onde eStargz NÃO ajuda
|
|
#
|
|
# =============================================================================
|
|
|
|
apiVersion: apps/v1
|
|
kind: DaemonSet
|
|
metadata:
|
|
name: image-prepuller
|
|
namespace: kube-system
|
|
labels:
|
|
app: image-prepuller
|
|
purpose: cold-start-optimization
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: image-prepuller
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: image-prepuller
|
|
spec:
|
|
# Tolera todos os taints para rodar em TODOS os nodes
|
|
tolerations:
|
|
- operator: Exists
|
|
|
|
# InitContainers baixam as imagens e terminam
|
|
initContainers:
|
|
# ---------------------------------------------------------------------
|
|
# PostgreSQL (Container Factory)
|
|
# ---------------------------------------------------------------------
|
|
- name: prepull-postgresql
|
|
image: gitea.kube.quest/factory/postgresql:17
|
|
command: ["echo", "PostgreSQL image cached"]
|
|
imagePullPolicy: Always
|
|
resources:
|
|
requests:
|
|
cpu: 1m
|
|
memory: 1Mi
|
|
limits:
|
|
cpu: 10m
|
|
memory: 10Mi
|
|
|
|
# ---------------------------------------------------------------------
|
|
# n8n
|
|
# ---------------------------------------------------------------------
|
|
- name: prepull-n8n
|
|
image: docker.n8n.io/n8nio/n8n:latest
|
|
command: ["echo", "n8n image cached"]
|
|
imagePullPolicy: Always
|
|
resources:
|
|
requests:
|
|
cpu: 1m
|
|
memory: 1Mi
|
|
limits:
|
|
cpu: 10m
|
|
memory: 10Mi
|
|
|
|
# ---------------------------------------------------------------------
|
|
# PostgreSQL Oficial (para clientes)
|
|
# ---------------------------------------------------------------------
|
|
- name: prepull-postgres-alpine
|
|
image: postgres:17-alpine
|
|
command: ["echo", "PostgreSQL Alpine image cached"]
|
|
imagePullPolicy: Always
|
|
resources:
|
|
requests:
|
|
cpu: 1m
|
|
memory: 1Mi
|
|
limits:
|
|
cpu: 10m
|
|
memory: 10Mi
|
|
|
|
# ---------------------------------------------------------------------
|
|
# Redis
|
|
# ---------------------------------------------------------------------
|
|
- name: prepull-redis
|
|
image: redis:7-alpine
|
|
command: ["echo", "Redis image cached"]
|
|
imagePullPolicy: Always
|
|
resources:
|
|
requests:
|
|
cpu: 1m
|
|
memory: 1Mi
|
|
limits:
|
|
cpu: 10m
|
|
memory: 10Mi
|
|
|
|
# Container principal apenas mantém o DaemonSet vivo
|
|
containers:
|
|
- name: pause
|
|
image: gcr.io/google_containers/pause:3.9
|
|
resources:
|
|
requests:
|
|
cpu: 1m
|
|
memory: 1Mi
|
|
limits:
|
|
cpu: 10m
|
|
memory: 10Mi
|
|
|
|
# Secrets para registries privados
|
|
imagePullSecrets:
|
|
- name: gitea-registry
|
|
|
|
---
|
|
# =============================================================================
|
|
# Secret para Registry Privado (template)
|
|
# =============================================================================
|
|
# Crie este secret em kube-system se usar registry privado:
|
|
#
|
|
# kubectl create secret docker-registry gitea-registry \
|
|
# --namespace=kube-system \
|
|
# --docker-server=gitea.kube.quest \
|
|
# --docker-username=<usuario> \
|
|
# --docker-password=<token>
|
|
# =============================================================================
|