Déployer une application sans état PHP Guestbook avec Redis sur un cluster Kubernetes avec Azure Arc sur Azure Stack Edge Pro avec GPU

S’APPLIQUE À :Yes for Pro GPU SKUAzure Stack Edge Pro - GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure Stack Edge Mini R

Cet article explique comment créer et déployer une application web simple multiniveau à l’aide de Kubernetes et d’Azure Arc. Cet exemple se compose des composants suivants :

  • un maître Redis à instance unique pour stocker les entrées du guestbook ;
  • plusieurs instances Redis répliquées pour servir les lectures ;
  • plusieurs instances frontales web.

Le déploiement s’effectue à l’aide de GitOps sur le cluster Kubernetes avec Azure Arc de votre appareil Azure Stack Edge Pro.

Cette procédure est destinée aux personnes qui ont examiné les charges de travail Kubernetes sur un appareil Azure Stack Edge Pro et connaissent les concepts de Kubernetes avec Azure Arc (préversion).

Remarque

Cet article contient des références au terme esclave, un terme que Microsoft n’utilise plus. Lorsque le terme sera supprimé du logiciel, nous le supprimerons de cet article.

Prérequis

Avant de pouvoir déployer l’application sans état, assurez-vous d’avoir rempli les conditions préalables suivantes sur votre appareil et le client que vous utiliserez pour accéder à celui-ci :

Pour l’appareil

  1. Vous avez les informations d’identification de connexion à un appareil Azure Stack Edge Pro à 1 nœud.

    1. L’appareil est activé. Voir Activer l’appareil.
    2. Le rôle de calcul est configuré sur l’appareil via le portail Azure et l’appareil dispose d’un cluster Kubernetes. Voir Configurer le calcul.
  2. Vous avez activé Azure Arc sur le cluster Kubernetes existant sur votre appareil, et vous disposez d’une ressource Azure Arc correspondante dans le portail Azure. Pour obtenir des instructions détaillées, consultez Activer Azure Arc sur un appareil Azure Stack Edge Pro.

Pour un client accédant à l’appareil

  1. Vous disposez d’un système client Windows qui sera utilisé pour accéder à l’appareil Azure Stack Edge Pro.

  2. Vous avez terminé la procédure décrite dans Accéder au cluster Kubernetes sur un appareil Azure Stack Edge Pro. Vous avez :

    • Installé kubectl sur le client.

    • Assurez-vous que la version du client kubectl n’est pas décalée de plus d’une version par rapport à la version principale de Kubernetes exécutée sur votre appareil Azure Stack Edge Pro.

      • Utilisez kubectl version pour vérifier la version de kubectl en cours d’exécution sur le client. Prenez note de la version complète.
      • Dans l’interface utilisateur locale de votre appareil Azure Stack Edge Pro, accédez à Vue d’ensemble et notez le numéro de version du logiciel Kubernetes.
      • Vérifiez la compatibilité de ces deux versions à partir du mappage fourni dans la version de Kubernetes prise en charge.
  3. Vous disposez d’une configuration GitOps que vous pouvez utiliser pour exécuter un déploiement d’Azure Arc. Dans cet exemple, vous allez utiliser les fichiers yaml suivants pour opérer le déploiement sur votre appareil Azure Stack Edge Pro.

    • frontend-deployment.yaml
    • frontend-service.yaml
    • redis-master-deployment.yaml
    • redis-master-service.yaml
    • redis-slave-deployment.yaml
    • redis-slave-service.yaml

Déployer la configuration

Procédez comme suit pour configurer la ressource Azure Arc afin de déployer une configuration GitOps via le portail Azure :

  1. Dans votre portail Azure, accédez à la ressource Azure Arc que vous avez créée lorsque vous avez activé Azure Arc sur le cluster Kubernetes sur votre appareil.

    Go to Azure Arc resource

  2. Accédez à configurations, puis sélectionnez + Ajouter une configuration.

    Screenshot shows the Azure Arc-enabled Kubernetes cluster with Add configuration selected.

  3. Spécifiez l’extension Flux version 1.

  4. Dans Ajouter une configuration GitOps, entrez les valeurs appropriées pour les champs, puis sélectionnez Ajouter.

    Paramètre Description
    Nom de la configuration Nom de la ressource de configuration.
    Nom d’instance de l’opérateur Nom d’instance de l’opérateur pour identifier une configuration spécifique. Le nom est une chaîne de maximum 253 caractères, composée uniquement de lettres minuscules, de chiffres, de traits et de points.
    Espace de noms de l’opérateur Défini sur demotestguestbook pour qu’il corresponde à l’espace de noms spécifié dans le fichier yaml de déploiement.
    Le champ définit l’espace de noms dans lequel l’opérateur est installé. Le nom est une chaîne de maximum 253 caractères, composée uniquement de lettres minuscules, de chiffres, de traits et de points.
    URL du dépôt
    Chemin d’accès du dépôt Git au format http://github.com/username/repo ou git://github.com/username/repo dans lequel se trouve votre configuration GitOps.
    Étendue de l’opérateur Sélectionnez Espace de noms.
    Ce paramètre définit l’étendue d’installation de l’opérateur. Sélectionnez Namespace pour installer votre opérateur dans l’espace de noms spécifié dans les fichiers YAML de déploiement.
    Type d’opérateur Conservez les valeurs par défaut.
    Ce paramètre spécifie le type de l’opérateur, par défaut, flux.
    Paramètres de l’opérateur Laissez ce champ vide.
    Ce paramètre contient les paramètres à transmettre à l’opérateur de flux.
    Helm Laissez cette case activée box non case activée ed.
    Activez cette option si vous souhaitez effectuer des déploiements basés sur un graphique.

    Add configuration

  5. Le déploiement de la configuration démarre et l’État de l’opérateur indique En attente.

    Screenshot shows the Azure Arc-enabled Kubernetes cluster in a pending state as it refreshes.

  6. Le déploiement prend quelques minutes. Une fois le déploiement terminé, l’État de l’opérateur indique Installé.

    Screenshot shows the Azure Arc-enabled Kubernetes cluster in an installed state.

Vérifier le déploiement

Le déploiement via la configuration GitOps crée un espace de noms demotestguestbook, comme indiqué dans les fichiers yaml de déploiement situés dans le dépôt Git.

  1. Une fois que vous avez appliqué la configuration GitOps, connectez-vous à l’interface PowerShell de l’appareil.

  2. Exécutez la commande suivante pour répertorier les pods en cours d’exécution dans l’espace de noms demotestguestbook correspondant au déploiement.

    kubectl get pods -n <your-namespace>

    Voici un exemple de sortie :

    [10.128.44.240]: PS>kubectl get pods -n demotestguestbook
    NAME                            READY   STATUS    RESTARTS   AGE
    aseoperator1-5569658644-cqtb5   1/1     Running   0          91m
    frontend-6cb7f8bd65-4xb4f       1/1     Running   0          91m
    frontend-6cb7f8bd65-q9cxj       1/1     Running   0          91m
    frontend-6cb7f8bd65-xpzs6       1/1     Running   0          91m
    memcached-86bdf9f56b-5l2fq      1/1     Running   0          91m
    redis-master-7db7f6579f-2z29w   1/1     Running   0          91m
    redis-slave-7664787fbc-lgr2n    1/1     Running   0          91m
    redis-slave-7664787fbc-vlvzn    1/1     Running   0          91m
    [10.128.44.240]: PS>
    
  3. Dans cet exemple, le service frontal a été déployé en tant que type:LoadBalancer. Vous devrez trouver l’adresse IP de ce service pour afficher le guestbook. Exécutez la commande suivante :

    kubectl get service -n <your-namespace>

    [10.128.44.240]: PS>kubectl get service -n demotestguestbook
    NAME           TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)        AGE
    frontend       LoadBalancer   10.96.79.38      10.128.44.245   80:31238/TCP   85m
    memcached      ClusterIP      10.102.47.75     <none>          11211/TCP      85m
    redis-master   ClusterIP      10.104.32.99     <none>          6379/TCP       85m
    redis-slave    ClusterIP      10.104.215.146   <none>          6379/TCP       85m
    [10.128.44.240]: PS>
    
  4. Le service frontal de type:LoadBalancer a une adresse IP externe. Cette adresse IP provient de la plage d’adresses IP que vous avez spécifiée pour les services externes lors de la configuration des paramètres réseau de Compute sur l’appareil. Utilisez cette adresse IP pour afficher le guestbook à l’adresse URL : https://<external-IP-address>.

    View guestbook

Supprimer un déploiement

Pour supprimer le déploiement, vous pouvez supprimer la configuration dans le portail Azure. La suppression de la configuration entraînera la suppression des objets qui ont été créés, y compris les déploiements et les services.

  1. Dans le portail Azure, accédez à la ressource Azure Arc > Configurations.
  2. Localisez la configuration à supprimer. Sélectionnez les points de suspension (...) pour appeler le menu contextuel, puis sélectionnez Supprimer. Delete configuration

La suppression de la configuration peut prendre plusieurs minutes.

Étapes suivantes

Découvrir comment Utiliser le tableau de bord Kubernetes pour surveiller les déploiements sur votre appareil Azure Stack Edge Pro