ASM vous permet d'effectuer des opérations de création, de lecture, de mise à jour et de suppression (CRUD) sur les ressources Istio via l'API Kubernetes (KubeAPI) des clusters du plan de données. Vous pouvez également utiliser Helm pour gérer vos applications. Cette rubrique explique comment accéder aux ressources Istio via la KubeAPI d'un cluster du plan de données.
Prérequis
Vous avez créé une instance ASM Édition Enterprise ou Ultimate Edition. La version de l'instance doit être 1.12.4.50 ou ultérieure. Pour plus d'informations, consultez les rubriques Créer une instance ASM et Mettre à niveau une instance ASM.
Contexte
L'API Kubernetes est une interface programmatique basée sur les ressources, accessible via HTTP. Elle prend en charge les verbes HTTP standard (POST, PUT, PATCH, DELETE et GET) pour récupérer, créer, mettre à jour et supprimer les ressources principales du cluster, telles que les déploiements et les services. Pour plus d'informations, consultez la documentation Kubernetes API.
Notes
Nous vous recommandons d'utiliser cette fonctionnalité en mode mono-cluster. Si votre instance ASM dispose de plusieurs clusters du plan de données, vous pouvez effectuer des opérations CRUD sur les ressources Istio depuis n'importe lequel de ces clusters.
Une fois cette fonctionnalité activée, vous ne pouvez plus supprimer le namespace istio-system du cluster du plan de données. Pour supprimer ce namespace, vous devez d'abord retirer le cluster du plan de données de l'instance ASM.
Après l'activation de cette fonctionnalité, le plan de données nécessite une à deux minutes pour se préparer.
La suppression d'un namespace dans le plan de données n'entraîne pas la suppression du namespace correspondant ni de ses ressources Istio sur le plan de contrôle.
-
Pour effectuer des opérations CRUD sur les ressources Istio, le namespace cible doit exister dans le plan de données. Si le namespace existe uniquement sur le plan de contrôle, vous devez d'abord le créer dans le plan de données. Dans le cas contraire, un message d'erreur similaire au suivant s'affiche :
Error from server (NotFound): error when creating "xx.yaml": namespaces "daily-01" not found Si vous créez une ressource Istio dans un namespace du plan de données et que ce namespace n'existe pas sur le plan de contrôle ASM, le namespace est automatiquement créé sur le plan de contrôle.
Les ressources Istio créées via la KubeAPI d'un cluster du plan de données sont stockées sur le plan de contrôle. Par conséquent, lors de la création ou de la mise à jour d'une ressource Istio, n'ajoutez pas de champ
ownerReferencespointant vers une ressource du plan de données. Sinon, la ressource Istio sur le plan de contrôle risque d'être supprimée par le garbage collector, car son propriétaire est introuvable.
Activer l'accès à la KubeAPI du plan de données
Pour les nouvelles instances ASM
Pour les instances créées après novembre 2024, cette fonctionnalité est activée par défaut. Pour les instances créées avant cette date, suivez les étapes décrites dans la section Pour les instances ASM existantes.
Pour les instances ASM existantes
Connectez-vous à la console ASM.
Dans le volet de navigation de gauche, sélectionnez .
Sur la page Mesh Management, localisez l'instance ASM à configurer. Cliquez sur le nom de l'instance ASM ou sur Manage dans la colonne Actions.
Sur la page Basic Information, cliquez sur Enable à côté de Enable Data-plane KubeAPI access.
Dans la boîte de dialogue Confirm to enable data-plane cluster KubeAPI access, cliquez sur OK.
Cas d'utilisation 1 : Gérer les ressources Istio avec kubectl
Une fois l'accès à la KubeAPI du plan de données activé, vous pouvez vous connecter à un cluster du plan de données à l'aide de kubectl, puis utiliser le fichier KubeConfig du cluster pour créer, interroger, modifier et supprimer des ressources Istio. Cette section utilise un VirtualService comme exemple.
-
Pour créer un VirtualService, exécutez la commande suivante :
kubectl apply -f <VirtualService-YAML-filename> -
Pour interroger les VirtualServices, exécutez la commande suivante :
kubectl get VirtualService -
Pour modifier un VirtualService, exécutez la commande suivante :
kubectl edit VirtualService <VirtualService-name> -
Pour supprimer un VirtualService, exécutez la commande suivante :
kubectl delete VirtualService <VirtualService-name>
Cas d'utilisation 2 : Déployer des applications avec Helm
Une fois l'accès à la KubeAPI du plan de données activé, Helm peut utiliser le fichier KubeConfig du cluster pour installer simultanément des applications sur le cluster et déployer des ressources Istio sur ASM.
Connectez-vous au cluster ACK à l'aide de kubectl. Pour plus d'informations, consultez la rubrique Obtenir le fichier kubeconfig d'un cluster et utiliser kubectl pour se connecter au cluster.
-
Installez Helm sur votre machine locale. Pour plus d'informations, consultez la documentation Helm.
RemarqueAprès vous être connecté au cluster avec kubectl, le client Helm utilise automatiquement le même fichier KubeConfig pour se connecter au cluster.
Téléchargez et extrayez le Helm chart d'exemple istio-bookinfo.
-
Accédez au répertoire istio-bookinfo et exécutez la commande suivante pour installer l'application :
helm install -f values.yaml istio-bookinfo ./Résultat attendu :
NAME:istio-bookinfo LAST DEPLOYED:THU May 26 16:44:19 2022 NAMESPACE:default STATUS:deployed REVISION:1 TEST SUITE:None -
Vérifiez le déploiement.
-
Vérifiez l'application Bookinfo dans la console ACK.
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, sélectionnez .
-
Sur la page Deployments, définissez le Namespace sur default.
Vous pouvez voir les applications installées par Helm, telles que details, productpage et ratings.
RemarqueDans le volet de navigation de gauche de la page de gestion du cluster, sélectionnez . Sur la page Helm, vous pouvez afficher la version Helm.
Cela inclut les versions reviews-v1 et reviews-v2. Chaque déploiement affiche 1/1 pods, ce qui indique que l'application d'exemple Bookinfo fonctionne comme prévu.
-
Vérifiez le VirtualService et la Gateway dans la console ASM.
Connectez-vous à la console ASM.
Dans le volet de navigation de gauche, sélectionnez .
Sur la page Mesh Management, localisez l'instance ASM à configurer. Cliquez sur le nom de l'instance ASM ou sur Manage dans la colonne Actions.
-
Dans le volet de navigation de gauche de la page des détails du maillage, sélectionnez .
Sur la page VirtualService, le VirtualService
bookinfoinstallé par Helm s'affiche. Cette page répertorie les ressources VirtualService existantes avec leurs namespaces, les services associés, les étendues et les heures de création. Vous pouvez créer un nouveau VirtualService en cliquant sur Create ou Create with YAML, ou gérer les ressources existantes à l'aide des options View YAML, Version Management et Delete. -
Dans le volet de navigation de gauche de la page des détails du maillage, sélectionnez .
Sur la page Gateway, la Gateway
bookinfo-gatewayinstallée par Helm s'affiche. Cette page répertorie les ressources Gateway existantes avec leurs noms de règle, namespaces, sélecteurs d'instances de gateway, protocoles et ports. Vous pouvez créer une nouvelle Gateway en cliquant sur Create ou Create with YAML, ou gérer les ressources existantes à l'aide des options View YAML, Version Management et Delete.
-
Opérations connexes
-
Exécutez la commande suivante pour afficher la liste des versions Helm :
helm list -
Exécutez la commande suivante pour mettre à jour un Helm chart :
helm upgrade -f values.yaml istio-bookinfo ./