> ## Documentation Index
> Fetch the complete documentation index at: https://infra-docs.kaeyros.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Cluster Kubernetes RKE2 : caractéristiques et composants

> Architecture du cluster RKE2 de production Kaeyros : 4 nœuds, CNI Canal, stockage Longhorn et local-path, Ingress Traefik principal, max-pods=300.

Le cluster Kubernetes de production Kaeyros repose sur RKE2, une distribution légère et sécurisée. Il héberge l'ensemble des applications métier et des services transverses. Cette page décrit sa composition matérielle, sa topologie réseau et les composants clés qui le constituent.

## Caractéristiques générales

| Caractéristique | Valeur |
| - | - |
| Distribution | RKE2 (version approximative `v1.29.4+rke2r1` à confirmer) |
| Nombre de nœuds | 4 |
| Plan de contrôle | 3 nœuds masters |
| Workers | 1 nœud worker |
| Namespaces | \~100 |
| Applications ArgoCD | \~326 |
| Pods | \~600 |
| Max pods par nœud | 300 |
| CNI | Canal |
| Stockage distribué | Longhorn |
| Stockage local | local-path |
| Ingress principal | Traefik |

> [!NOTE]
>
> La version exacte de RKE2 fait partie des [points à compléter](https://infra-docs.kaeyros.org/operations/a-completer.md). La valeur `v1.29.4+rke2r1` est une approximation issue des observations du cluster.

## Nœuds du cluster

Le cluster est composé de 4 nœuds répartis sur 11 serveurs dédiés Hetzner situés à Helsinki :

| Rôle | Nom du nœud | Observation |
| - | - | - |
| Master | `antid` | Plan de contrôle |
| Master | `ubuntu-2204-jammy-amd64-base` | Plan de contrôle, récemment reconstruit |
| Master | `ubuntu-2404-noble-amd64-base` | Plan de contrôle, 31 redémarrages de l'API server sur 3 jours |
| Worker | `big-one-9d0479e4` | Worker dédié, évité par affinity (voir ci-dessous) |

> [!WARNING]
>
> Le nœud `big-one-9d0479e4` est exclu du scheduling normal par des règles d'affinity. Les rollouts l'évitent de préférence (`preferred`), et les jobs `data-precompute` l'exigent (`required`). La raison historique de cette exclusion est à documenter (voir [chantiers](https://infra-docs.kaeyros.org/operations/chantiers.md)).

## Ingress et exposition des services

> [!NOTE]
>
> Traefik est l'Ingress Controller principal du cluster. NGINX Ingress est également présent dans certaines configurations. Il s'agit vraisemblablement d'une cohabitation historique : Traefik reste le contrôleur principal utilisé pour l'ensemble des applications métier.

La chaîne de trafic complète est la suivante :

```text theme={null}
Cloudflare → LB Hetzner → Traefik → Ingress → Service → Rollout/Deployment
```

## Stockage

Deux solutions de stockage coexistent sur le cluster :

| Solution | Usage | StorageClass |
| - | - | - |
| Longhorn | Volumes persistants distribués pour les applications métier | `longhorn` |
| local-path | Volumes locaux éphémères ou de développement | `local-path` |

> [!NOTE]
>
> Les bases PostgreSQL utilisent le StorageClass `local-path` via l'opérateur Zalando. Les sauvegardes logiques sont envoyées vers `s3://logical-backup-kaeyros`.

## Réseau et CNI

Le CNI Canal combine Flannel pour le réseau overlay et Calico pour la politique réseau. Cette configuration assure la communication inter-pods et la segmentation réseau entre namespaces.

## Points de vigilance

* Le nœud `ubuntu-2404-noble-amd64-base` présente une instabilité du plan de contrôle (redémarrages fréquents de l'API server).
* Un DaemonSet `kube-proxy` surnuméraire, hors dépôt, coexiste avec les pods statiques RKE2. Sa présence est anormale et fait l'objet d'un chantier.
* La capacité de 300 pods par nœud doit être prise en compte lors du dimensionnement des nouvelles applications.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.