Overview · MemphisLab Docs
MemphisLab Docs
k3s Platform

Overview

O que a plataforma k3s faz e como hospeda os serviços internos

Plataforma GitOps que provisiona e opera uma instância isolada de cada aplicação por cliente, em um cluster k3s de 4 nodes. Hoje hospeda o checklist-mobile (multi-cliente, um namespace por cliente) e o license-manager (instância única, domínio próprio).

Stack

  • k3s — por que k3s e não Kubernetes vanilla, e como o cluster decide onde e como rodar cada coisa: orchestration-fundamentals
  • ArgoCD (GitOps/CD), Helm — mecanismo de reconciliação e o ApplicationSet que gera um cliente por arquivo: gitops-argocd
  • CloudNativePG — Postgres por cliente, operator pattern: postgres-operator
  • Traefik — ingress e terminação TLS
  • cert-manager — certificado wildcard via Cloudflare DNS-01
  • Sealed Secrets — segredos versionáveis em Git, cifrados: secrets-encryption
  • MinIO — storage de aplicação e destino de backup de banco
  • Loki + Promtail — agregação de logs
  • kube-prometheus-stack — métricas e Grafana
  • buildkitd nativo por arquitetura (amd64 e arm64) — build de imagem dentro do próprio cluster: image-builds

NetworkPolicy, HPA e PriorityClass (isolamento e escala por cliente) estão em network-and-scaling.

Como uma aplicação é hospedada

Um chart Helm único (charts/app) serve qualquer aplicação Laravel. Cada aplicação é declarada uma vez em apps/<nome>.yaml (repositório fonte, extensões PHP necessárias, imagem, variáveis de ambiente próprias). Cada cliente instancia essa aplicação em clients/<slug>.yaml, apontando platform.app: <nome> — o ApplicationSet do ArgoCD combina os dois arquivos e gera um namespace por cliente.

A plataforma também é dona do Dockerfile: nenhuma aplicação precisa manter configuração Docker própria. runtime/laravel/Dockerfile builda qualquer projeto Laravel, detectando se tem assets de frontend e se usa Octane.

Ver topology para a infraestrutura compartilhada e commands para o dia a dia de operação.