Partager via


Utiliser des fonctionnalités de cluster Kubernetes dans des clusters Kubernetes Nexus

Dans cet article, vous découvrez comment utiliser les fonctionnalités de cluster Kubernetes Nexus. Les fonctionnalités de cluster Kubernetes Nexus sont des fonctionnalités de la plateforme Nexus qui permettent aux clients d’améliorer leurs clusters Kubernetes Nexus en ajoutant des packages ou des fonctionnalités supplémentaires.

Prérequis

Avant de suivre ce guide pratique, nous vous recommandons de :

  • Reportez-vous au guide de démarrage rapide du cluster Nexus Kubernetes pour obtenir une vue d’ensemble complète et des étapes impliquées.
  • Veillez à respecter les conditions préalables décrites pour garantir l’implémentation fluide du guide.
  • Version minimale requise de l’networkcloudextension az-cli :2.0.b3

Limites

  • Vous pouvez créer, supprimer ou mettre à jour seulement les fonctionnalités de cluster Kubernetes dont le champ Required est défini sur False.
  • Lors de l’installation initiale d’une fonctionnalité de cluster Kubernetes, le nom de la fonctionnalité doit être un des noms de fonctionnalité listés dans le tableau. Pour des actions ultérieures comme les mises à jour ou les suppressions, le nom de la fonctionnalité doit être obtenu en utilisant la commande az networkcloud kubernetescluster feature list.
  • La fonctionnalité metrics-server ne peut pas être supprimée si un autoscaler de pod horizontal (HPA, Horizontal Pod Autoscaler) est en cours d’utilisation dans le cluster.
  • Les fonctionnalités de cluster Kubernetes liées au stockage, comme csi-nfs et csi-volume, ne peuvent pas être supprimées si la StorageClass correspondante est utilisée dans le cluster.

Configuration par défaut

Quand un cluster Kubernetes Nexus est déployé, la liste des fonctionnalités de cluster Kubernetes requises est installée automatiquement. Après le déploiement, vous pouvez gérer les fonctionnalités de cluster Kubernetes facultatives en les installant ou en les désinstallant (en les supprimant du cluster).

Vous ne pouvez pas contrôler l’installation des fonctionnalités de cluster Kubernetes marquées comme « Obligatoires ». Cependant, vous pouvez effectuer des opérations de création, de mise à jour et de suppression sur les fonctionnalités dont le champ « Obligatoire » est défini sur « False ». Vous avez également la possibilité de mettre à jour les fonctionnalités de cluster Kubernetes via la commande de mise à jour.

Les fonctionnalités de cluster Kubernetes suivantes sont disponibles pour chaque cluster Kubernetes Nexus. Les fonctionnalités pour lesquelles « Obligatoire » est défini sur « True » sont toujours installées par défaut et ne peuvent pas être supprimées.

Nom Description Obligatoire Installé par défaut
azure-arc-k8sagents Arc connecte un cluster Kubernetes Nexus True True
calico Fournit la prise en charge de l’interface CNI (Container Network Interface) True True
cloud-provider-kubevirt Prend en charge le fournisseur KubeVirt d’API de cluster (CAPI, Cluster API) pour la gestion des charges de travail basées sur des machines virtuelles dans Kubernetes True True
ipam-cni-plugin Alloue des adresses IP pour les réseaux de couche 3 connectés à des conteneurs de charge de travail quand ipamEnabled est défini sur True True True
metallb Fournit des adresses IP externes aux services Load Balancer pour l’équilibrage de charge du trafic dans Kubernetes True True
multus Prend en charge l’attachement de plusieurs interfaces réseau à des pods Kubernetes True True
node-local-dns Déploie NodeLocal DNSCache pour améliorer les performances et la fiabilité de DNS dans le cluster Kubernetes True True
sriov-dp Déploie un plug-in CNI facultatif pour la virtualisation d’E/S d’une racine unique (SR-IOV, Single Root I/O Virtualization) pour améliorer les performances du réseau True True
azure-arc-servers Déploie des serveurs avec Azure Arc sur chaque plan de contrôle et chaque nœud de pools d’agents, ce qui permet la gestion des ressources non-Azure et des ressources Azure False True
csi-nfs Fournit un pilote CSI (Container Storage Interface) pour NFS (Network File System) afin de prendre en charge le stockage NFS dans Kubernetes False True
csi-volume Prend en charge la classe de stockage csi-nexus-volume pour les revendications de volumes persistants dans Kubernetes False True
metrics-server Déploie le serveur de métriques, qui fournit des métriques d’utilisation des ressources pour les clusters Kubernetes, comme l’utilisation du processeur et de la mémoire False True

Remarque

  • Pour chaque cluster, vous ne pouvez créer qu’une seule fonctionnalité de chaque type de fonctionnalité de cluster Kubernetes.
  • Si vous supprimez une fonctionnalité de cluster Kubernetes avec l’attribut « Obligatoire » défini sur « False », les charts associés seront supprimés du cluster.

Comment gérer les fonctionnalités de cluster Kubernetes

Les interactions suivantes permettent la création et la gestion de la configuration des fonctionnalités de cluster Kubernetes.

Installer une fonctionnalité de cluster Kubernetes

Pour installer une fonctionnalité de cluster Kubernetes dans le cluster, utilisez la commande az networkcloud kubernetescluster feature create. Si vous avez plusieurs abonnements Azure, vous devez spécifier l’ID d’abonnement en utilisant l’indicateur --subscription dans la commande CLI ou en sélectionnant l’ID d’abonnement approprié avec la commande az account set.

az networkcloud kubernetescluster feature create \
    --name "<FEATURE_NAME>" \
    --kubernetes-cluster-name "<KUBERNETES_CLUSTER_NAME>" \
    --resource-group "<RESOURCE_GROUP>" \
    --location "<LOCATION>" \
    --tags "<KEY1>=<VALUE1>" "<KEY2>=<VALUE2>"
  • Remplacez les espaces réservés (<FEATURE_NAME>, <KUBERNETES_CLUSTER_NAME>, <RESOURCE_GROUP>, <LOCATION>, <KEY1>=<VALUE1> et <KEY2>=<VALUE2>) par vos informations spécifiques.

Pour voir la liste des paramètres disponibles et leur description, exécutez la commande :

az networkcloud kubernetescluster feature create --help

Paramètres de configuration des fonctionnalités de cluster Kubernetes

Nom du paramètre Description
FEATURE_NAME Nom de la feature de cluster Kubernetes
KUBERNETES_CLUSTER_NAME Nom du cluster
LOCATION Région Azure où le cluster est déployé
RESOURCE_GROUP Le nom du groupe de ressources du cluster
KEY1 Étiquette1 facultative à passer lors de la création de la fonctionnalité de cluster Kubernetes
VALUE1 Valeur de étiquette1 facultative à passer lors de la création de la fonctionnalité de cluster Kubernetes
KEY2 Étiquette2 facultative à passer lors de la création de la fonctionnalité de cluster Kubernetes
VALUE2 Valeur de étiquette2 facultative à passer lors de la création de la fonctionnalité de cluster Kubernetes

La spécification des options --no-wait --debug dans une commande az provoque l’exécution asynchrone de cette commande. Pour obtenir plus d’informations, consultez comment effectuer le suivi des opérations asynchrones.

Lister la fonctionnalité de cluster Kubernetes

Vous pouvez rechercher les ressources de fonctionnalité de cluster Kubernetes pour un cluster spécifique en utilisant la commande az networkcloud kubernetescluster feature list. Cette commande affiche la liste de toutes les fonctionnalités associées au cluster Kubernetes spécifié :

az networkcloud kubernetescluster feature list \
  --kubernetes-cluster-name  "<KUBERNETES_CLUSTER_NAME>" \
  --resource-group "<RESOURCE_GROUP>"

Récupérer une fonctionnalité de cluster Kubernetes

Une fois qu’un cluster Kubernetes est créé, vous pouvez obtenir les détails d’une fonctionnalité de cluster Kubernetes spécifique en utilisant la commande networkcloud kubernetescluster feature show. Ceci fournit des informations détaillées sur la fonctionnalité :

az networkcloud kubernetescluster feature show \
 --cluster-name "<KUBERNETES_CLUSTER_NAME>" \
 --resource-group "<RESOURCE_GROUP>"

Cette commande retourne une représentation JSON de la configuration des fonctionnalités de cluster Kubernetes.

Mettre à jour une fonctionnalité de cluster Kubernetes

D’une façon similaire à la création d’une fonctionnalité de cluster Kubernetes, vous pouvez effectuer une action de mise à jour pour modifier les étiquettes affectées à la fonctionnalité de cluster Kubernetes. Utilisez la commande suivante pour mettre à jour les étiquettes :

Important

  • Le paramètre name doit correspondre au « Nom » obtenu dans la sortie de la commande az networkcloud kubernetescluster feature list. Bien que le nom de la fonctionnalité fourni lors de l’installation puisse être utilisé initialement, une fois la fonctionnalité installée, un nom unique lui est affecté. Pour cette raison, utilisez toujours la commande list pour obtenir le nom réel de la ressource pour les opérations de mise à jour et de suppression, au lieu d’utiliser le nom initial de la fonctionnalité indiqué dans le tableau.
az networkcloud kubernetescluster feature update \
  --name "<FEATURE_NAME>"   \
  --kubernetes-cluster-name "<KUBERNETES_CLUSTER_NAME>"  \
  --resource-group "<RESOURCE_GROUP>" \
  --tags <KEY1>="<VALUE1>" \
        <KEy2>="<VALUE2>"

La spécification des options --no-wait --debug dans une commande az provoque l’exécution asynchrone de cette commande. Pour obtenir plus d’informations, consultez comment effectuer le suivi des opérations asynchrones.

Supprimer une fonctionnalité de cluster Kubernetes

La suppression d’une fonctionnalité de cluster Kubernetes supprime la ressource du cluster. Pour supprimer une fonctionnalité de cluster Kubernetes, utilisez la commande suivante :

Important

  • Le paramètre name doit correspondre au « Nom » obtenu dans la sortie de la commande az networkcloud kubernetescluster feature list. Bien que le nom de la fonctionnalité fourni lors de l’installation puisse être utilisé initialement, une fois la fonctionnalité installée, un nom unique lui est affecté. Pour cette raison, utilisez toujours la commande list pour obtenir le nom réel de la ressource pour les opérations de mise à jour et de suppression, au lieu d’utiliser le nom initial de la fonctionnalité indiqué dans le tableau.
az networkcloud kubernetescluster feature delete  \
   --name "<FEATURE_NAME>"  \
   --kubernetes-cluster-name "<KUBERNETES_CLUSTER_NAME>" \
   --resource-group "<RESOURCE_GROUP>"

La spécification des options --no-wait --debug dans une commande az provoque l’exécution asynchrone de cette commande. Pour obtenir plus d’informations, consultez comment effectuer le suivi des opérations asynchrones.

Remarque

  • Si vous tentez de supprimer une fonctionnalité de cluster Kubernetes pour laquelle Required=True, la commande va échouer et générer un message d’erreur indiquant « Suppression non autorisée pour la fonctionnalité..., car c’est une fonctionnalité obligatoire. ».
  • Dans ce cas, une commande show/list ultérieure va afficher un provisioningState avec la valeur Failed. Il s’agit d’un problème connu.
  • Pour corriger le provisioningState, vous pouvez exécuter une commande sans opération, comme la mise à jour des étiquettes sur la fonctionnalité de cluster Kubernetes affectée. Utilisez le paramètre --tags de la commande de mise à jour pour effectuer cette action. Cette action va réinitialiser le provisioningState en Succeeded.