Déploiement Kubernetes
Le pilote Kubernetes est prêt dans le code et testé en intégration continue, activé plus tard en production. Il utilise les mêmes images que Swarm.
Ce qui est déployé par workspace
Section intitulée « Ce qui est déployé par workspace »Chart deploy/k8s/charts/workspace (un namespace remizo-<slug> par workspace) :
| Ressource | Rôle |
|---|---|
Cluster CloudNativePG |
PostgreSQL 17, instances = spec.postgres.instances, services -rw / -ro, sauvegardes vers Silo |
Deployment engine |
spec.engines.replicas, sondes /healthz et /readyz sur le port 47501 |
HorizontalPodAutoscaler |
montée en charge des moteurs sur la CPU |
PodDisruptionBudget |
au moins un moteur disponible pendant les maintenances |
Deployment Valkey |
cache du workspace |
Service / IngressRoute Traefik |
<slug>.engine.<domaine> |
NetworkPolicy |
seuls Traefik et le hub joignent le workspace ; la base n’est joignable que depuis les moteurs et le hub |
Chart deploy/k8s/charts/hub : API et worker du hub, studio, console, documentation.
Démarrage rapide avec k3s
Section intitulée « Démarrage rapide avec k3s »curl -sfL https://get.k3s.io | sh - # k3s inclut Traefikexport KUBECONFIG=/etc/rancher/k3s/k3s.yamlkubectl apply --server-side -f https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.27/releases/cnpg-1.27.0.yamlbash deploy/k8s/sync-migrations.sh # copie db/hub et db/workspace dans les chartshelm install hub deploy/k8s/charts/hub -n remizo-hub --create-namespacehelm install demo deploy/k8s/charts/workspace -n remizo-demo --create-namespace \ --set workspace.slug=demo --set postgres.instances=2 --set engines.replicas=2kubectl -n remizo-demo get podsLes instructions détaillées (registre privé 10.0.4.15:5050, secrets, valeurs) sont dans deploy/README.md.
Correspondance avec WorkspaceSpec
Section intitulée « Correspondance avec WorkspaceSpec »WorkspaceSpec |
Valeur Helm |
|---|---|
engines.replicas, cpu, memory |
engines.replicas, engines.resources |
postgres.instances, storage, version |
postgres.instances, postgres.storage, postgres.imageVersion |
postgres.ha = cnpg |
toujours le cas sur Kubernetes |
valkey.enabled, memory |
valkey.enabled, valkey.resources |
network.publicHost |
ingress.host |
Validation
Section intitulée « Validation »Les manifests rendus sont validés par kubeconform en intégration continue ; un job déploie le chart dans un cluster k3d jetable.