Leçon 3 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 profile create mon-profil \
  --access-key ABCDEFGHIJ1234567890 \
  --secret-key XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX \
  --region eu-west-2

# Créer un profil avec login/password
oks profile create mon-profil \
  --login 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 project create 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 :

TypeMastersMax NodesRAMUsage
cp.mono.master1104 Go🧪 Tests, POC
cp.3.masters.small35012 Go🏢 Petite production
cp.3.masters.medium320024 Go🏭 Production moyenne
cp.3.masters.large340048 Go🏗️ Grande production
💡 Comment choisir ?
  1. Développement/Testscp.mono.master (économique, pas de HA)
  2. Productioncp.3.masters.* (haute disponibilité obligatoire)
  3. Sizing → Comptez vos nodes actuels + 50% de marge de croissance

Versions Kubernetes supportées

OKS maintient les 5 dernières versions mineures de Kubernetes. Cela vous laisse le temps de planifier vos mises à jour tout en bénéficiant des dernières fonctionnalités :

VersionStatusNotes
1.32✅ ActuelleDernière version stable
1.31Recommandée pour la production
1.30Support complet
1.29Support complet
1.28⚠️Fin de support proche
ℹ️ Mises à jour automatiques

Les patches de sécurité (ex: 1.31.1 → 1.31.2) sont appliqués automatiquement par OUTSCALE. Les mises à jour mineures (ex: 1.30 → 1.31) restent manuelles pour vous laisser le contrôle.

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 : 5 versions maintenues, patches automatiques
  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.