Créer un cluster
Profiter des avantages d'un orchestrateur de container demande au préalable l'accès à un cluster dans lequel il est possible de déployer ces applicatifs. Dans l'approche NumSpot, les Nodes d'un cluster sont regroupés dans des Nodepools.
Voici la liste des opérations réalisables:
- Créer un cluster
- Supprimer un cluster
- Ajouter des workers
- Supprimer un worker
Configuration du cluster
Droits d'accès
Le cluster est fourni avec des droits d'accès cluster admin, il est de la responsabilité du client de ne pas mener d'opérations qui nuiraient à la bonne marche de ce cluster.
Plugins
Le cluster est déployé avec les plugins minimum suivants:
- CNI Cilium
- DNS CoreDNS
- CSI csi.outscale
:::
- Console
- API
Depuis la page Services Managés > Kubernetes qui affiche la liste de vos clusters, cliquez sur le bouton Créer un cluster.
Sur le formulaire de création d'un cluster Kubernetes, vous devez renseigner le nom du cluster, sa plage d'adresse au format CIDR, la version souhaitée parmi une liste prédéfinie, ainsi que le profil et le nombre de workers.
Prérequis
- Un compte NumSpot
- Un espace NumSpot auquel le compte est associé
- Un compte avec le rôle
Kubernetes Admin
sur l'espace - Un jeton de connexion associé au compte NumSpot utilisé
Ce qu'il faut savoir avant de créer un cluster
Choix de la version
La liste des versions disponibles peut être consultée depuis une API qui liste toutes les versions disponibles.
Plage d'IP adressable (CIDR)
Le CIDR est utilisé pour définir toutes les adresses IP privées des Nodes du cluster. Le masque de réseau doit être /16.
Le CIDR demandé doit respecter le format 10.X.0.0/16
avec seulement le deuxième octet configurable entre 0 et 255.
La limitation du nombre de Nodes est de 100 par cluster Kubernetes.
Nomenclature du nom de cluster
L'utilisateur a la possibilité de définir un nom au cluster pour le reconnaître plus facilement. Le choix du nom n'a aucun impact technique sur le cluster, il est uniquement utile à l'utilisateur.
Le nom doit respecter ces critères:
- Être unique au sein de l'espace NumSpot auquel il appartient parmi les clusters Kubernetes
- Se composer uniquement des caractères alphanumériques (
a-zA-Z0-9
et-
) - Contenir entre 3 et 64 caractères
Les noms de cluster sont propres à chaque service managé, donc avoir deux clusters avec le même nom est possible si le premier est un cluster Kubernetes et le second un cluster Openshift.
Création d'un cluster
Les données qu'il faut avoir
SPACE_ID
est l'identifiant de l'espace NumSpot dans lequel il est souhaité de créer le clusterREGION
est la région dans laquelle l'espace NumSpot est associé, un espace est disponible qu'à partir d'une seule régionACCESS_TOKEN
est le jeton (token) généré à partir d'un compte de service (Service Account) (consulter la génération d'un token d'accès)
Requête de création d'un cluster
export REGION="myregion"
export SPACE_ID="myspaceid"
export ACCESS_TOKEN="myaccesstoken"
curl -X POST https://api.$REGION.numspot.com/kubernetes/spaces/$SPACE_ID/clusters \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"name": "myCluster",
"cidr": "10.1.0.0/16",
"version": "1.31.6",
"nodeProfile": "SMALL",
"nodeCount": 2
}'
Si l'opération lancée est validée et acceptée, un objet json est retourné par l'API avec un code de statut 202 Accepted
:
La création d'un cluster complet peut durer environ 15 minutes (ordre de grandeur indicatif). Pour suivre l'état du cluster et savoir quand il est prêt à être utilisé, le status est disponible via la route de GET Cluster, comme suit:
curl -X GET https://api.$REGION.numspot.com/kubernetes/spaces/$SPACE_ID/clusters/$CLUSTER_ID \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header 'Content-Type: application/json'
{
"availabilityZone": "eu-west-2a",
"cidr": "10.1.0.0/16",
"createdAt": "2025-04-16T16:11:02.151115712Z",
"id": "8b06aa15-b28c-415c-bf7a-4ecc1353b4f1",
"name": "my-first-cluster",
"nodePools": [
...
],
"status": "CREATING",
"version": "1.31.6"
...
}
Dès que la demande de création d'un cluster est acceptée, et que le cluster en cours de création, ile devient visible dans la liste des clusters de l'espace.
Lorsque la demande de création de cluster est acceptée, un load balancer est instancié comme point d'entrée au worker depuis une URL accessible en public. Nous pouvons la retrouver parmi les informations du cluster dans le champ ingressUrl
.
Si la requête n'est pas acceptée, une erreur au format JSON avec des détails sera renvoyée.
{
"type": "https://docs.numspot.com/docs/domains/cloud/errors#invalid_param",
"title": "Invalid CIDR",
"detail": "The 'cidr' is not a valid one, mask MUST BE '16'",
"instance": "https://..../spaces/{spaceId}/clusters/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"mask": 12
}