Utilisation de clusters de calcul pour provisionner des noeuds gérés
Découvrez comment créer des pools de noeuds gérés dans des clusters de calcul à l'aide de Kubernetes Engine (OKE) pour prendre en charge les workloads qui utilisent des formes Bare Metal compatibles RDMA.
Un cluster de calcul est une ressource de service Compute qui fournit des fonctions de réseau à bande passante élevée et à faible latence entre les instances Bare Metal prises en charge. Dans Kubernetes Engine, vous pouvez indiquer un cluster de calcul lorsque vous créez un pool de noeuds gérés. Lorsque Kubernetes Engine crée des instances de noeud de processus actif pour le pool de noeuds, le service Compute lance les instances dans le cluster de calcul sélectionné.
Utilisez des clusters de calcul pour les pools de noeuds gérés qui exécutent des charges de travail nécessitant une mise en réseau compatible RDMA, telles que les charges de travail d'entraînement distribuées. La spécification d'un cluster de calcul pour un pool de noeuds gérés vous permet d'utiliser la mise en réseau compatible RDMA tout en conservant les opérations de pool de noeuds gérés par Kubernetes Engine, telles que le redimensionnement, les mises à niveau et le remplacement de noeuds.
Le moteur Kubernetes ne crée pas de clusters de calcul. Créez et configurez le cluster de calcul dans le service Compute avant de le sélectionner dans Kubernetes Engine. Pour plus d'informations sur les clusters de calcul, reportez-vous à Clusters de calcul dans la documentation du service Compute.
Lorsque vous indiquez un cluster de calcul pour un pool de noeuds gérés, Kubernetes Engine active automatiquement les modules d'extension HPC d'agent Oracle Cloud requis pour la mise en réseau RDMA, y compris le module d'extension d'authentification RDMA Compute HPC et le module d'extension de configuration automatique RDMA Compute HPC. Vous ne pouvez pas personnaliser cette configuration de module d'extension d'agent Oracle Cloud à l'aide des API de pool de noeuds du moteur Kubernetes.
Vous pouvez uniquement indiquer un cluster de calcul lors de la création d'un pool de noeuds gérés. Vous ne pouvez pas ajouter, enlever ou modifier le cluster de calcul pour un pool de noeuds existant. Pour utiliser un autre cluster de calcul, créez un pool de noeuds gérés.
Avant de créer un pool de noeuds gérés dans un cluster de calcul, notez les points suivants :
- Le cluster Kubernetes Engine doit être un cluster amélioré.
- Créez le cluster de calcul dans le service Compute.
- Vérifiez que l'état de cycle de vie du cluster de calcul est
ACTIVE. - Utilisez une forme de pool de noeuds qui prend en charge les clusters de calcul et RDMA (reportez-vous à Formes prises en charge dans la documentation du service Compute).
- La configuration de placement de pool de noeuds doit inclure uniquement le domaine de disponibilité qui contient le cluster de calcul.
- Ne spécifiez pas de domaines de pannes dans la configuration de placement. Lorsqu'un cluster de calcul est indiqué, le placement de domaine de pannes est géré par le service Compute.
- Ajoutez la stratégie IAM requise afin que Kubernetes Engine puisse utiliser le cluster de calcul lors du lancement d'instances de noeud de processus actif.
Stratégie IAM requise
Pour permettre à un pool de noeuds d'utiliser un cluster de calcul, une stratégie doit exister permettant au principal de ressource de pool de noeuds d'utiliser le cluster de calcul. Par exemple :
allow any-user to {COMPUTE_CLUSTER_LAUNCH_INSTANCE} in compartment <compartment_name> where request.principal.type = 'nodepool' and target.resource.id = '<compute_cluster_OCID>'
où :
<compartment_name>est le nom du compartiment qui contient le cluster de calcul.<compute_cluster_OCID>est l'OCID du cluster du calcul.
Utilisation de la console
Vous pouvez indiquer un cluster de calcul lorsque vous créez un cluster avec un pool de noeuds gérés ou lorsque vous créez un pool de noeuds gérés dans un cluster amélioré existant.
Vous ne pouvez pas indiquer de cluster de calcul lors de la mise à jour d'un pool de noeuds gérés existant.
Création d'un cluster et spécification d'un cluster de calcul pour un pool de noeuds gérés
- Suivez les instructions pour créer un cluster à l'aide du workflow Création personnalisée. Reportez-vous à Utilisation de la console pour créer un cluster avec des paramètres définis de manière explicite dans le workflow Création personnalisée.
- Lors de la spécification des détails du pool de noeuds :
- Pour Type de noeud, sélectionnez Géré.
- Spécifiez la configuration de placement de noeud comme suit :
- Domaine de disponibilité : sélectionnez le domaine de disponibilité qui contient le cluster de calcul.
- Compartiment de sous-réseau de noeud de processus actif : sélectionnez le compartiment qui contient le sous-réseau de noeud de processus actif.
- Sous-réseau de noeud de processus actif : sélectionnez un sous-réseau dans le domaine de disponibilité du cluster de calcul.
- Domaines de pannes : ne spécifiez pas de domaines de pannes. Le placement de domaine de pannes est géré par le service Compute.
- Pour Forme de noeud, sélectionnez une forme de noeud qui prend en charge les clusters de calcul et RDMA.
- Sélectionnez les options avancées et indiquez le cluster de calcul à utiliser dans la section Ajouter un cluster de calcul :
- Compartiment de cluster de calcul : sélectionnez le compartiment qui contient le cluster de calcul.
- Cluster de calcul : sélectionnez le cluster de traitement.
- Créez le cluster.
Le moteur Kubernetes crée le cluster et le pool de noeuds gérés. Lorsque Kubernetes Engine crée des instances de noeud de processus actif pour le pool de noeuds gérés, le service Compute lance les instances dans le cluster de calcul sélectionné.
Création d'un pool de noeuds gérés et spécification d'un cluster de calcul
- Dans la page de liste Clusters, sélectionnez le nom du cluster amélioré dans lequel vous souhaitez créer un pool de noeuds. Si vous avez besoin d'aide pour trouver la page de liste ou le cluster, reportez-vous à Liste des clusters.
- Sur l'onglet Pools de noeuds de la page de détails du cluster, sélectionnez Ajouter un pool de nœuds afin de créer un pool de nœuds gérés et d'indiquer les propriétés requises pour ses nœuds de processus actif.
- Lors de la spécification des détails du pool de noeuds :
- Pour Type de noeud, sélectionnez Géré.
- Sélectionnez les options avancées et indiquez le cluster de calcul à utiliser dans la section Ajouter un cluster de calcul :
- Compartiment de cluster de calcul : sélectionnez le compartiment qui contient le cluster de calcul.
- Cluster de calcul : sélectionnez le cluster de traitement.
- Spécifiez la configuration de placement de noeud comme suit :
- Domaine de disponibilité : sélectionnez le domaine de disponibilité qui contient le cluster de calcul.
- Compartiment de sous-réseau de noeud de processus actif : sélectionnez le compartiment qui contient le sous-réseau de noeud de processus actif.
- Sous-réseau de noeud de processus actif : sélectionnez un sous-réseau dans le domaine de disponibilité du cluster de calcul.
- Domaines de pannes : ne spécifiez pas de domaines de pannes. Le placement de domaine de pannes est géré par le service Compute.
- Pour Forme de noeud, sélectionnez une forme de noeud qui prend en charge les clusters de calcul et RDMA.
- Créez le pool de noeuds.
Le moteur Kubernetes crée le pool de noeuds gérés. Lorsque Kubernetes Engine crée des instances de noeud de processus actif pour le pool de noeuds gérés, le service Compute lance les instances dans le cluster de calcul sélectionné.
Utilisation de la CLI
Pour utiliser l'interface de ligne de commande afin de créer un pool de noeuds gérés dans un cluster de calcul, incluez la paire clé/valeur computeClusterId dans le paramètre --node-config-details au format suivant :
oci ce node-pool create \
--cluster-id <cluster_OCID> \
--compartment-id <compartment_OCID> \
--name <node_pool_name> \
--kubernetes-version <kubernetes_version> \
--node-shape <shape> \
--node-config-details '{
"size": 2,
"placementConfigs": [
{
"availabilityDomain": "<availability_domain>",
"subnetId": "<subnet_OCID>"
}
],
"computeClusterId": "<compute_cluster_OCID>"
}'
La configuration de placement doit inclure uniquement le domaine de disponibilité qui contient le cluster de calcul. Ne spécifiez pas de domaines de pannes.
Utilisation de l'API
Lors de la création d'un pool de noeuds gérés, indiquez computeClusterId dans les détails de configuration du pool de noeuds.
Pour créer des demandes de pool de noeuds, indiquez :
CreateNodePoolDetails.createNodePoolNodeConfigDetails.computeClusterId
La propriété computeClusterId n'est pas mutable. Vous ne pouvez pas indiquer computeClusterId dans UpdateNodePoolDetails.
Résoudre les problèmes
Utilisez les informations suivantes pour résoudre les problèmes liés aux clusters de calcul dans les pools de noeuds gérés.
Le cluster de calcul n'est pas disponible dans la liste
Vérifiez les points suivants :
- Vous avez sélectionné le compartiment approprié.
- Le cluster de calcul est actif.
- Vous êtes autorisé à visualiser ou à utiliser le cluster de calcul.
- Le cluster Kubernetes Engine est un cluster amélioré.
Echec de la création du pool de noeuds
Vérifiez les points suivants :
- Le cluster Kubernetes Engine est un cluster amélioré.
- La forme du pool de noeuds prend en charge les clusters de calcul et RDMA.
- La configuration de placement inclut uniquement le domaine de disponibilité qui contient le cluster de calcul.
- Les domaines de pannes ne sont pas spécifiés dans la configuration de placement.
- La stratégie IAM requise existe.
- Le cluster de calcul sélectionné n'est pas supprimé ou inactif.
Je ne peux pas ajouter ou modifier le cluster de calcul pour un pool de noeuds existant
Vous ne pouvez indiquer un cluster de calcul que lors de la création d'un pool de noeuds gérés. Vous ne pouvez pas ajouter, enlever ou modifier le cluster de calcul pour un pool de noeuds existant.
Pour utiliser un autre cluster de calcul, créez un pool de noeuds gérés qui indique le cluster de calcul requis.