Créer un cluster

Vous pouvez créer des clusters Kubernetes managés pour déployer vos applications conteneurisées. OKS vous permet de démarrer des clusters Kubernetes avec une configuration prédéfinie et des services essentiels pré-installés, afin de vous éviter de gérer des déploiements inutiles.

Créer un cluster avec OKS CLI

Avant de commencer :

Pour créer un cluster, utilisez la commande cluster create en suivant cette syntaxe :

Exemple de requête : Créer un cluster mono Sous-région
$ oks-cli cluster create \
    --cluster-name NAME_OF_CLUSTER \
    --project-name NAME_OF_PROJECT \
    --admin "1.2.3.4/32,5.6.7.8/32" \
    --version VERSION_NUMBER \
    --control-plane "cp.3.masters.small" \
    --zone 2b
Exemple de requête : Créer un cluster multi-Sous-régions
$ oks-cli cluster create \
    --cluster-name NAME_OF_CLUSTER \
    --project-name NAME_OF_PROJECT \
    --admin "1.2.3.4/32,5.6.7.8/32" \
    --version VERSION_NUMBER \
    --control-plane "cp.3.masters.small" \
    --cp-multi-az

Cette commande contient les options suivantes que vous devez spécifier :

  • cluster-name : Le nom du cluster, d’une longueur maximale de 40 caractères alphanumériques et tirets (-). Ce nom doit commencer par une lettre minuscule et ne doit pas finir par un tiret. Il doit être unique dans le projet.

  • (optionnel) description : La description du cluster que vous voulez créer.

  • (optionnel) project-name : Le nom du projet dans lequel vous voulez créer le cluster.

  • admin : Les IP à mettre sur liste blanche, en notation CIDR et séparées par des virgules. Cette plage d’une ou plusieurs IP est vide par défaut, et doit être spécifiée pour pouvoir gérer le cluster après sa création.

  • (optionnel) cidr-pods : Le CIDR /16 à utiliser en interne pour les pods. Le CIDR du projet, les CIDR des pods, et les CIDR des services ne doivent pas se chevaucher.

  • (optionnel) cidr-service : Le CIDR /16 à utiliser en interne pour les services. Le CIDR du projet, les CIDR des pods, et les CIDR des services ne doivent pas se chevaucher.

  • (optionnel) control-plane : La taille souhaitée du control plane. Pour en savoir plus, voir Control planes.

  • (optional) cp-multi-az : Active l’option de control plane multi-Sous-régions, pour créer un cluster multi-Sous-régions.

    • Lorsque vous utilisez cette option, le control plane est déployé sur trois Sous-régions différentes afin d’assurer sa haute disponibilité.

    • Seuls les control planes haute disponibilité peuvent être déployés dans un cluster multi-Sous-régions.

  • (optionnel) enable-admission-plugins : La liste des plugins d’admission supplémentaires que vous souhaitez activer sur le cluster. Pour en savoir plus sur les plugins d’admission, voir la documentation Kubernetes (anglais uniquement).

  • (optionnel) disable-admission-plugins : La liste des plugins d’admission de la liste par défaut que vous souhaitez désactiver.

  • (optionnel) disable-api-termination : La possibilité de supprimer le cluster via l’API. Si true, la suppression du cluster est désactivée. Si false, elle est activée.

  • (optionnel) dryrun : Fournit une vue d’ensemble des opérations effectuées par la commande sans pour autant l’exécuter. Vous pouvez l’utiliser comme mesure de sécurité pour examiner l’impact d’une commande avant de l’exécuter.

  • (optionnel) filename : Le nom du fichier de définition à partir duquel vous voulez créer le cluster.

  • (optionnel) output : Le format de sortie de la réponse (json | yaml). Par défaut, le format de la réponse est JSON. Le fichier généré avec la définition du cluster peut être modifié et appliqué en utilisant la commande -f --filename …​.

  • (optionnel) quirk : Les clés et les paramètres à transmettre au cluster. Cette option est requise pour les demandes de fonctionnalités.

  • (optionnel) tags : Les tags que vous voulez ajouter aux nœuds du cluster.

  • (optionnel) version : Une des versions prises en charge de Kubernetes. Pour en savoir plus sur les versions prises en charge, voir Versions Kubernetes prises en charge.

  • (optionnel) zone : La Sous-région dans laquelle vous voulez déployer le control plane du cluster.

Vous pouvez afficher toutes les options disponibles en utilisant la commande cluster create avec la syntaxe suivante :

$ oks-cli cluster create --help

La commande CreateCluster renvoie les éléments suivants :

  • project_id  : L’ID du projet auquel appartient ce cluster.

  • id : Le Universally Unique Identifier (UUID) du cluster.

  • name : Un nom unique pour le cluster au sein du projet.

  • description : Une description facultative du cluster.

  • cp_multi_az : Si true, le déploiement multi-Sous-régions est activé pour le control plane. Si false, il est désactivé.

  • cp_subregions : Les Sous-régions sur lesquelles les composants du control plane sont déployés.

  • version : La version Kubernetes déployée pour le cluster. Pour en savoir plus, voir GetKubernetesVersions.

  • cni : Le Container Network Interface (CNI) utilisé dans le cluster.

  • admin_lbu : Si true, l’administration de load balancers est activée pour la gestion des clusters. Si false, elle est désactivée.

  • admission_flags : La configuration des contrôleurs d’admission Kubernetes.

    • disable_admission_plugins : La liste des plugins d’admission qui sont désactivés.

    • enable_admission_plugins : La liste des plugins d’admission qui sont activés.

    • applied_admission_plugins : La liste des plugins d’admission qui sont actuellement appliqués au cluster.

  • cidr_pods : Le bloc CIDR utilisé en interne pour les pods.

  • cidr_service : Le bloc CIDR utilisé en interne pour les services.

  • cluster_dns : L’IP du service DNS du cluster.

  • tags : Les tags appliqués aux worker nodes du cluster.

  • auto_maintenances : La configuration des fenêtres de maintenance automatisées.

    • minor_upgrade_maintenance : La configuration de la fenêtre de maintenance pour les mises à niveau mineures de Kubernetes.

      • enabled : Si true, une fenêtre de maintenance est activée.

      • duration_hours : La durée de la fenêtre de maintenance, en heures.

      • start_hour : L’heure de début de la fenêtre de maintenance, en heures.

      • week_day : Le jour de la semaine où commence la fenêtre de maintenance.

      • tz : Le fuseau horaire pour la fenêtre de maintenance.

    • patch_upgrade_maintenance : La configuration de la fenêtre de maintenance pour les mises à jour correctives Kubernetes.

      • enabled : Si true, une fenêtre de maintenance est activée.

      • duration_hours : La durée de la fenêtre de maintenance, en heures.

      • start_hour : L’heure de début de la fenêtre de maintenance, en heures.

      • week_day : Le jour de la semaine où commence la fenêtre de maintenance.

      • tz : Le fuseau horaire pour la fenêtre de maintenance.

  • control_planes : La taille souhaitée du control plane.

  • admin_whitelist : La liste des CIDR ou IP autorisés à accéder au cluster via l’API Kubernetes.

  • statuses : Les informations d’état du cluster.

    • created_at : La date et l’heure de création du cluster.

    • deleted_at : La date et l’heure de suppression du cluster. (si applicable).

    • updated_at : La date et l’heure de dernière mise à jour du cluster.

    • status : L’état du cluster.

    • available_upgrade : Toute version disponible de Kubernetes pour mise à jour (si applicable).

  • disable_api_termination : Si true, la possibilité de supprimer le cluster via l’API est désactivée. Si false, elle est activée.

Exemple de résultat
{
    "project_id": "877295ad-171c-4f9a-86c5-d45c8b2321fe",
    "id": "5e5b232c-b7de-4cc0-9296-faa006b8bd25",
    "name": "NAME_OF_CLUSTER",
    "description": "",
    "cp_multi_az": false,
    "cp_subregions": [
        "2a"
    ],
    "version": "1.32",
    "cni": "cilium",
    "admin_lbu": false,
    "admission_flags": {
        "disable_admission_plugins": [],
        "enable_admission_plugins": [],
        "applied_admission_plugins": [
            "ClusterTrustBundleAttest",
            "LimitRanger",
            "RuntimeClass",
            "ServiceAccount",
            "CertificateApproval",
            "ResourceQuota",
            "PodSecurity",
            "Priority",
            "NamespaceLifecycle",
            "DefaultIngressClass",
            "PersistentVolumeClaimResize",
            "ValidatingAdmissionPolicy",
            "StorageObjectInUseProtection",
            "CertificateSigning",
            "DefaultStorageClass",
            "MutatingAdmissionWebhook",
            "CertificateSubjectRestriction",
            "TaintNodesByCondition",
            "DefaultTolerationSeconds",
            "ValidatingAdmissionWebhook"
        ]
    },
    "cidr_pods": "10.91.0.0/16",
    "cidr_service": "10.92.0.0/16",
    "cluster_dns": "10.92.0.10",
    "tags": {},
    "auto_maintenances": {
        "minor_upgrade_maintenance": {
            "enabled": true,
            "duration_hours": 1,
            "start_hour": 12,
            "week_day": "Tue",
            "tz": "UTC"
        },
        "patch_upgrade_maintenance": {
            "enabled": true,
            "duration_hours": 1,
            "start_hour": 12,
            "week_day": "Tue",
            "tz": "UTC"
        }
    },
    "control_planes": "cp.mono.master",
    "admin_whitelist": [
        "1.2.3.4/32",
        "5.6.7.8/32"
    ],
    "statuses": {
        "created_at": "2025-01-01T00:02:00.000000Z",
        "updated_at": "2025-01-01T00:02:00.000001Z",
        "status": "pending",
        "available_upgrade": ""
    },
    "disable_api_termination": false
}

Vous pouvez utiliser la commande cluster list pour vérifier l’état du cluster. Votre cluster est créé lorsque son état passe à ready.

Pages connexes

Méthode API correspondante