Leçon 4 25 min Aperçu gratuit

Architecture d'OKS

Avant de créer votre premier cluster, il est essentiel de comprendre comment OKS est structuré. Cette architecture en couches déterminera vos choix de configuration et impactera la façon dont vous organiserez vos workloads.

🎯 Objectifs de cette leçon

À la fin de cette leçon, vous saurez :

  • Expliquer la hiérarchie OKS (Profil → Projet → Cluster → Nodepool)
  • Choisir le bon type de control plane
  • Comprendre les versions Kubernetes supportées

La hiérarchie OKS

OKS organise vos ressources selon une hiérarchie stricte à 4 niveaux. Chaque niveau englobe le suivant, un peu comme des poupées russes. Cette organisation permet d'isoler les environnements, de gérer les permissions et de contrôler les coûts par projet.

Hiérarchie OKS

💡 Analogie

Pensez à cette hiérarchie comme une entreprise :

  • Profil = Votre badge d'entrée
  • Projet = Un département avec son budget
  • Cluster = Une équipe avec son manager (control plane)
  • Nodepool = Les employés qui font le travail

1. Le Profil

Le profil est votre identité sur le cloud OUTSCALE. Il contient vos credentials d'authentification et détermine la région dans laquelle vous travaillez. Vous pouvez avoir plusieurs profils pour gérer différents environnements (dev, prod) ou différentes régions.

Deux modes d'authentification

OKS propose deux façons de s'authentifier, chacune adaptée à un usage spécifique :

ModeAvantagesCas d'usage
Access Key / Secret KeyPas d'expirationCI/CD, scripts
Login / PasswordToken temporaireUsage interactif

Pour l'automatisation (CI/CD, Terraform), préférez les Access Keys. Pour un usage manuel quotidien, le login/password avec token temporaire est plus sécurisé.

# Créer un profil avec AK/SK
oks-cli profile add --profile-name mon-profil \
  --access-key ABCDEFGHIJ1234567890 \
  --secret-key XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \
  --region eu-west-2

# Créer un profil avec identifiants
oks-cli profile add --profile-name mon-profil \
  --username mon-email@exemple.fr \
  --region eu-west-2
# (Le mot de passe sera demandé interactivement)

2. Le Projet

Le projet est un environnement réseau isolé. À sa création, OKS provisionne automatiquement un VPC (Virtual Private Cloud) dédié avec le CIDR que vous spécifiez. Ce VPC isole complètement vos clusters des autres projets.

Caractéristiques importantes

Certaines propriétés du projet sont définitives à la création. Il est donc crucial de bien planifier avant de créer un projet :

PropriétéModifiableNotes
Nom❌ NonDéfinitif à la création
CIDR❌ NonImmutable - Choisissez bien !
Description✅ OuiPeut être mise à jour
⚠️ CIDR immutable

Le CIDR du projet ne peut pas être modifié après création. Choisissez une plage suffisamment grande (ex: /16 = 65 534 IPs) pour permettre l'expansion future. Un /24 (254 IPs) sera vite limitant en production.

Exemple de création

oks-cli project create --project-name mon-projet \
  --description "Environnement de production" \
  --cidr 10.0.0.0/16

3. Le Cluster

Le cluster est l'instance Kubernetes elle-même. Il comprend un control plane entièrement géré par OUTSCALE : vous n'avez pas accès aux masters, mais vous n'avez pas non plus à les maintenir.

Types de control planes

Le choix du control plane détermine la haute disponibilité et la capacité maximale de votre cluster. Voici les options disponibles :

TypeMastersRAM par masterÉchelle indicativeUsage
cp.mono.master14 Giojusqu'à 10 nœuds🧪 tests, clusters éphémères
cp.3.masters.small34 Giojusqu'à 50 nœuds🏢 petite production
cp.3.masters.medium38 Giojusqu'à 200 nœuds🏭 production moyenne
cp.3.masters.large316 Giojusqu'à 400 nœuds🏗️ grande production

Trois faits conditionnent ce choix, et deux d'entre eux sont irréversibles.

Le mono-master n'est pas un choix de production. La documentation le réserve explicitement aux tests et aux clusters éphémères : un seul master signifie qu'une panne emporte le plan de contrôle.

On monte, on ne redescend pas. Passer à un type supérieur après création est possible ; revenir en arrière ne l'est pas. Sur-dimensionner coûte, mais sous-dimensionner impose de vivre avec, ou de recréer le cluster.

Le multi-sous-région exige la haute disponibilité. Seuls les control planes à trois masters peuvent être déployés sur plusieurs sous-régions. Un cp.mono.master interdit donc cette répartition.

💡 Comment choisir ?
  1. Développement, testscp.mono.master, en sachant qu'il ne survivra pas à une panne
  2. Productioncp.3.masters.*, seule option en multi-sous-région
  3. Dimensionnement → vos nœuds actuels plus 50 % de marge, puisque la descente est impossible

Versions Kubernetes supportées

OKS maintient plusieurs versions mineures en parallèle. Plutôt que de mémoriser une liste qui vieillit, interrogez le service : la documentation officielle publie les versions prises en charge, et chaque cluster expose dans son statut la prochaine version qu'il accepte, dans le champ available_upgrade.

Deux règles stables valent en revanche la peine d'être retenues.

ℹ️ Mises à jour automatiques

Les patches de sécurité (ex : 1.33.1 → 1.33.2) sont appliqués automatiquement par OUTSCALE pendant la fenêtre de maintenance. Les mises à jour mineures (ex : 1.33 → 1.34) restent manuelles : la documentation précise que « les clusters existants ne sont pas automatiquement mis à niveau ».

4. Le Nodepool

Le nodepool (ou pool de nœuds) est un groupe de worker nodes homogènes qui exécutent vos applications. Un cluster peut avoir plusieurs nodepools avec des caractéristiques différentes, par exemple un pool standard et un pool GPU.

Caractéristiques d'un nodepool

Chaque nodepool définit le type de machines utilisées et leur nombre. Vous pouvez aussi y attacher des labels pour diriger vos workloads :

PropriétéDescription
Type de VMTaille des instances (CPU, RAM)
Nombre de nodesFixe ou dynamique (autoscaling)
ZoneSous-région de déploiement
LabelsPour cibler les déploiements Kubernetes

Types de VM disponibles

Les VMs OUTSCALE utilisent une nomenclature standardisée qui encode directement les caractéristiques de la machine :

tinav6.c2r4p2
       │ │ │
       │ │ └── Génération réseau (p2 = standard)
       │ └──── RAM en Go (r4 = 4 Go)
       └────── CPU cores (c2 = 2 vCPU)

Voici les types les plus couramment utilisés :

TypevCPURAMUsage type
tinav6.c1r1p211 GoMicro services légers
tinav6.c2r4p224 GoApplications standard
tinav6.c4r8p248 GoApplications gourmandes
tinav6.c8r16p2816 GoBases de données
tinav6.c16r32p21632 GoBig Data, ML

Schéma complet de l'architecture

Ce schéma récapitule tous les niveaux de la hiérarchie OKS et montre comment les différents composants s'imbriquent :

Architecture complète OKS

📌 Points clés à retenir

  1. Hiérarchie stricte : Profil → Projet → Cluster → Nodepool
  2. CIDR immutable : Planifiez votre adressage réseau dès le départ
  3. Control plane : mono.master pour les tests, 3.masters.* pour prod
  4. Versions K8s : patches automatiques, mineures manuelles
  5. Nodepools multiples : Mixez différents types de VMs (standard, GPU)

Prochaine étape

Maintenant que vous comprenez l'architecture, passons à la pratique : dans le prochain module, nous allons installer OKS CLI et configurer notre environnement de travail.