Lire en anglais

Partager via


Accéder aux ressources Kubernetes à l’aide du Portail Azure

Dans cet article, vous allez apprendre à accéder à vos ressources Azure Kubernetes Service (AKS) et à les gérer à l’aide du Portail Azure.

Avant de commencer

Pour afficher les ressources Kubernetes dans le Portail Azure, vous avez besoin d’un cluster AKS. Tout cluster est pris en charge, mais si vous utilisez l’intégration Microsoft Entra, votre cluster doit utiliser l’Intégration de Microsoft Entra managée par AKS. Si votre cluster utilise Microsoft Entra ID hérité, vous pouvez mettre à niveau votre cluster dans le portail ou à l’aide de Azure CLI. Vous pouvez également utiliser le Portail Azure pour créer un nouveau cluster AKS.

Afficher des ressources Kubernetes

  1. Dans le Portail Azure, accédez à votre ressource de cluster AKS.

  2. Dans le menu des services, sélectionnez les ressources Kubernetes. La liste des ressources Kubernetes affiche les catégories suivantes :

    • Espaces de noms : affiche des informations sur les espaces de noms de votre cluster.
    • Charges de travail affiche des informations sur les déploiements, les pods, les jeux de réplicas, les jeux avec état, les ensembles Daemon, les travaux et les travaux cron déployés sur votre cluster.
    • Services et entrées affiche l’ensemble du service et des ressources d’entrée de votre cluster.
    • Stockage affiche vos classes de stockage Azure et les informations sur les volumes persistants.
    • Configuration affiche les mappages de configuration et les secrets de votre cluster.
    • Ressources personnalisées : affiche les ressources personnalisées éventuellement déployées sur votre cluster.
    • Événements : affiche tous les événements liés à votre cluster.
    • Exécuter la commande vous permet d’appeler à distance des commandes, comme kubectl et helm, sur votre cluster via l’API Azure sans vous connecter directement au cluster.

    Capture d’écran montrant les ressources Kubernetes affichées dans le portail Azure.

Déployer un exemple d’application

Dans cette section, nous déployons l’application Azure Store à partir du guide de démarrage rapide AKS.

Se connecter au cluster

Pour déployer l’application Azure Store, vous devez vous connecter à votre cluster AKS. Suivez ces étapes pour vous connecter à votre cluster à l’aide du Portail Azure :

  1. Dans la page Vue d’ensemble de votre cluster AKS, sélectionnez Connecter.
  2. Suivez les instructions pour vous connecter à votre cluster en utilisant Cloud Shell, Azure CLI ou Run Command.

Déployer l’application Azure Store

  1. Dans la liste Ressources Kubernetes, sélectionnez Services et entrées.

  2. Sélectionnez Créer>Appliquer un YAML.

  3. Copiez et collez le code YAML suivant dans l’éditeur :

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: rabbitmq
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: rabbitmq
      template:
        metadata:
          labels:
            app: rabbitmq
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: rabbitmq
            image: mcr.microsoft.com/mirror/docker/library/rabbitmq:3.10-management-alpine
            ports:
            - containerPort: 5672
              name: rabbitmq-amqp
            - containerPort: 15672
              name: rabbitmq-http
            env:
            - name: RABBITMQ_DEFAULT_USER
              value: "username"
            - name: RABBITMQ_DEFAULT_PASS
              value: "password"
            resources:
              requests:
                cpu: 10m
                memory: 128Mi
              limits:
                cpu: 250m
                memory: 256Mi
            volumeMounts:
            - name: rabbitmq-enabled-plugins
              mountPath: /etc/rabbitmq/enabled_plugins
              subPath: enabled_plugins
          volumes:
          - name: rabbitmq-enabled-plugins
            configMap:
              name: rabbitmq-enabled-plugins
              items:
              - key: rabbitmq_enabled_plugins
                path: enabled_plugins
    ---
    apiVersion: v1
    data:
      rabbitmq_enabled_plugins: |
        [rabbitmq_management,rabbitmq_prometheus,rabbitmq_amqp1_0].
    kind: ConfigMap
    metadata:
      name: rabbitmq-enabled-plugins
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: rabbitmq
    spec:
      selector:
        app: rabbitmq
      ports:
        - name: rabbitmq-amqp
          port: 5672
          targetPort: 5672
        - name: rabbitmq-http
          port: 15672
          targetPort: 15672
      type: ClusterIP
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: order-service
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: order-service
      template:
        metadata:
          labels:
            app: order-service
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: order-service
            image: ghcr.io/azure-samples/aks-store-demo/order-service:latest
            ports:
            - containerPort: 3000
            env:
            - name: ORDER_QUEUE_HOSTNAME
              value: "rabbitmq"
            - name: ORDER_QUEUE_PORT
              value: "5672"
            - name: ORDER_QUEUE_USERNAME
              value: "username"
            - name: ORDER_QUEUE_PASSWORD
              value: "password"
            - name: ORDER_QUEUE_NAME
              value: "orders"
            - name: FASTIFY_ADDRESS
              value: "0.0.0.0"
            resources:
              requests:
                cpu: 1m
                memory: 50Mi
              limits:
                cpu: 75m
                memory: 128Mi
          initContainers:
          - name: wait-for-rabbitmq
            image: busybox
            command: ['sh', '-c', 'until nc -zv rabbitmq 5672; do echo waiting for rabbitmq; sleep 2; done;']
            resources:
              requests:
                cpu: 1m
                memory: 50Mi
              limits:
                cpu: 75m
                memory: 128Mi
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: order-service
    spec:
      type: ClusterIP
      ports:
      - name: http
        port: 3000
        targetPort: 3000
      selector:
        app: order-service
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: product-service
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: product-service
      template:
        metadata:
          labels:
            app: product-service
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: product-service
            image: ghcr.io/azure-samples/aks-store-demo/product-service:latest
            ports:
            - containerPort: 3002
            resources:
              requests:
                cpu: 1m
                memory: 1Mi
              limits:
                cpu: 1m
                memory: 7Mi
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: product-service
    spec:
      type: ClusterIP
      ports:
      - name: http
        port: 3002
        targetPort: 3002
      selector:
        app: product-service
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: store-front
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: store-front
      template:
        metadata:
          labels:
            app: store-front
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: store-front
            image: ghcr.io/azure-samples/aks-store-demo/store-front:latest
            ports:
            - containerPort: 8080
              name: store-front
            env:
            - name: VUE_APP_ORDER_SERVICE_URL
              value: "http://order-service:3000/"
            - name: VUE_APP_PRODUCT_SERVICE_URL
              value: "http://product-service:3002/"
            resources:
              requests:
                cpu: 1m
                memory: 200Mi
              limits:
                cpu: 1000m
                memory: 512Mi
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: store-front
    spec:
      ports:
      - port: 80
        targetPort: 8080
      selector:
        app: store-front
      type: LoadBalancer
    
  4. Sélectionnez Ajouter.

    Une fois le déploiement de l’application terminé, vous pouvez voir les services suivants dans la liste Services :

    • order-service
    • product-service
    • rabbitmq
    • store-front

    Capture d’écran des services d’application Azure Store affichés dans le Portail Azure.

Analyser les insights du déploiement

Activer le module complémentaire de monitoring sur votre cluster AKS

Les clusters AKS sur lesquels Container Insights est activé peuvent accéder à différents insights de déploiement dans le Portail Azure. Si le monitoring n’est pas activé sur votre cluster, vous pouvez l’activer en effectuant les étapes suivantes :

  1. À partir du menu de service de votre ressource de cluster AKS, sélectionnez Monitoring>Insights>Configurer le monitoring.

  2. Dans la page Configurer Container Insights, sélectionnez Configurer.

    Quelques minutes peuvent être nécessaires pour que la solution de monitoring soit déployée et que la collecte des données commence.

Analyser les insights du déploiement

  1. À partir du menu de service de votre ressource de cluster AKS, sélectionnez Charges de travail.
  2. Sélectionnez un déploiement dans la liste pour afficher les insights du déploiement, notamment l’utilisation du processeur et de la mémoire.

Notes

Vous pouvez également sélectionner Monitoring>Insights pour afficher des informations plus détaillées sur des nœuds et des conteneurs spécifiques.

Nettoyer les ressources

Si vous n’avez plus besoin de l’application Azure Store, vous pouvez supprimer les services pour éviter les frais générés par Azure.

  1. Dans la liste Ressources Kubernetes, sélectionnez Services et entrées.
  2. Sélectionnez les services que vous souhaitez supprimer, puis sélectionnez Supprimer.

Dépannage

Accès non autorisé

Pour accéder aux ressources Kubernetes, vous devez accéder au cluster AKS, à l’API Kubernetes et aux objets Kubernetes. Vérifiez que vous êtes un administrateur de cluster ou un utilisateur disposant des autorisations appropriées pour accéder au cluster AKS. Pour plus d’informations, consultez Options d’accès et d’identité pour AKS.

Activer l’affichage des ressources

Vous devrez peut-être activer l’affichage des ressources Kubernetes pour les clusters existants.

Conseil

Vous pouvez ajouter la fonctionnalité AKS des plages d’adresses IP autorisées du serveur d’API pour limiter l’accès du serveur d’API au point de terminaison public du pare-feu uniquement. Une autre option consiste à mettre à jour --api-server-authorized-ip-ranges/-ApiServerAccessAuthorizedIpRange pour inclure l’accès d’un ordinateur client local ou d’une plage d’adresses IP à partir desquels vous parcourez le Portail Azure. Pour autoriser cet accès, vous avez besoin de l’adresse IPv4 publique de l’ordinateur. Vous pouvez trouver cette adresse à l’aide des commandes Azure CLI ou Azure PowerShell suivantes, ou vous pouvez rechercher « quelle est mon adresse IP » dans votre navigateur.

  1. Récupérez votre adresse IP à l’aide de la commande suivante :

    CURRENT_IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
    
  2. Ajoutez votre adresse IP à la liste approuvée AKS en utilisant la commande az aks update avec le paramètre --api-server-authorized-ip-ranges.

    az aks update --resource-group <resource-group-name> --name <aks-cluster-name> --api-server-authorized-ip-ranges $CURRENT_IP/32
    

Étapes suivantes

Cet article vous a montré comment accéder aux ressources Kubernetes depuis le portail Azure. Pour plus d’informations sur AKS, consultez Concepts de base d’Azure Kubernetes Service (AKS).