Fase 6 — CAPN (opcional)¶
Objetivo¶
Provisionar workload clusters kubeadm sobre instancias Incus vía Cluster API y CAPN.
Qué aprendes¶
CAPI (Cluster API) declara clusters como recursos Kubernetes; CAPN (Cluster API Provider for Incus) traduce LXCMachine en
instancias Incus — clusters efímeros sin tocar el management K3s (distribución ligera de Kubernetes).
Stack de esta fase¶
sequenceDiagram
participant Op as Operador
participant K3s as K3s_management
participant CAPI as Cluster_API
participant CAPN as CAPN_controller
participant Incus as Incus_API
participant WL as Workload_cluster
Op->>K3s: clusterctl_init
Op->>K3s: apply_demo_yaml
CAPI->>CAPN: reconcile_LXCMachine
CAPN->>Incus: crear_LXC
Incus->>WL: kubeadm_listo
Op->>WL: kubectl_workload
- Cluster API — API (Application Programming Interface) declarativa; Fase 6.
- CAPN — Provider Incus; Fase 6.
- clusterctl — Bootstrap CAPI en el management cluster.
- Incus — Runtime de instancias; Fase 2.
- Sealed Secrets — Credenciales Incus cifradas en git.
Profundización: CAPN · Secretos
Antes de empezar¶
- Fase 2 — Incus cluster healthy.
- Fase 4 — GitOps con Sealed Secrets operativo.
- Credencial Incus sellada (
lxc-secret).
La Fase 5 — vCluster es opcional: no hace falta para esta fase.
Ejecutar¶
Instalar clusterctl e init CAPN¶
curl -L https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.10.10/clusterctl-linux-amd64 -o clusterctl
chmod +x clusterctl && sudo mv clusterctl /usr/local/bin/
mkdir -p ~/.cluster-api
curl -o ~/.cluster-api/clusterctl.yaml https://capn.linuxcontainers.org/static/v0.1/clusterctl.yaml
clusterctl init -i incus
Generar y aplicar cluster demo¶
Ver comandos completos en CAPN — profundización.
Opciones¶
| Decisión | Default HomeLab |
|---|---|
| Sync ArgoCD | Manual (efímero, evita borrados accidentales) |
| Target workers | @arm64-nodes (deborah) / CP @x86-nodes |
Análisis de trade-offs
Sync manual
Clusters efímeros no se prunean solos
Apply + Sync en UI cada vez
Workers en
@arm64-nodesAprovecha 31 GB de deborah
Menos margen si deborah ya es CP K3s
CP en
@x86-nodesSeparación CP workload / management
Más RAM en nodos x86 limitados
CAPN vs vCluster
VMs/Incus reales; kubeadm completo
Mucha más RAM que vCluster en pods
Verificar¶
Si falla¶
| Síntoma | Revisar |
|---|---|
| Machine stuck | Secret Incus, IP Incus en lxc-secret |
| Image pull | images.linuxcontainers.org |