Skip to main content
BlogConteneurs (Kubernetes, Docker)Premiers pas avec Akamai App Platform

Premiers pas avec Akamai App Platform

App Platform - Blog Post Header - Text - Alt 1

En début de semaine, nous avons lancé Akamai App Platform, une extension en un clic pour Linode Kubernetes Engine (LKE) qui permet d'ajouter facilement des outils centrés sur les développeurs et les opérations, l'automatisation et le libre-service pour rationaliser le cycle de vie de vos applications lorsque vous utilisez Kubernetes. Akamai App Platform relie de nombreuses technologies du paysage de la Cloud Native Computing Foundation (CNCF) de manière à apporter une valeur ajoutée directe.

Dans ce billet de blog, nous vous présentons les étapes de provisionnement d'un cluster LKE avec Akamai App Platform, puis nous construisons, déployons et exposons publiquement une application.

Approvisionnement d'un cluster Kubernetes à l'aide d'Akamai App Platform

Akamai App Platform est désormais disponible en version bêta. Avant de commencer, assurez-vous d'abord de vous connecter à votre compte ou d'ouvrir un compte de cloud computing Akamai. Une fois connecté, inscrivez-vous au programme bêta sur la page Bêta.

Sélectionnez maintenant Kubernetes dans le menu de navigation de gauche et sélectionnez Créer un cluster. La page Créer un cluster Kubernetes s'affiche. En haut de la page, vous devez sélectionner les options suivantes :

  • Dans le champ Cluster Label, donnez un nom à votre cluster. Ce nom doit être unique pour tous les clusters de votre compte. Ce nom est la façon dont vous identifiez votre cluster dans le tableau de bord de Cloud Manager.
  • Sélectionnez votre région dans le menu déroulant.
  • Sélectionnez la version de Kubernetes à déployer sur votre cluster dans le menu déroulant.
  • Dans la section App Platform for LKE, sélectionnez "Yes, enable App Platform for LKE" (Oui, activer l'App Platform for LKE)
  • Dans la section "Add Node Pools", sélectionnez les ressources matérielles pour le(s) nœud(s) de travail Linode qui composent votre cluster LKE. Pendant la phase bêta, l'App Platform pour LKE nécessite un pool de nœuds avec au moins 3 nœuds de travail avec un minimum de 16 Go de mémoire par nœud. Shared CPU n'est actuellement pas pris en charge.
  • Sélectionnez Ajouter pour inclure le pool de nœuds dans votre configuration.
  • Une fois qu'un pool de nœuds a été ajouté à votre configuration, il est répertorié dans le résumé du cluster sur le côté droit de Cloud Manager, détaillant les ressources matérielles et le coût mensuel de votre cluster.
  • Lorsque vous êtes satisfait de la configuration de votre grappe, sélectionnez Créer une grappe dans la partie droite de l'écran. La page de détails de votre grappe s'affiche, et vos pools de nœuds sont répertoriés sur cette page.

Le cluster LKE sera alors créé et, une fois prêt, la plate-forme applicative sera installée. L'installation de la plate-forme d'application pour LKE prend environ 10 à 15 minutes. Lorsque l'installation est terminée, l'URL du point de terminaison du portail apparaît dans la section Plate-forme d'application pour LKE de la page de détail du cluster. La progression de l'installation est vérifiée toutes les 60 secondes. Lorsque l'installation est toujours en cours, l'URL du point d'accès au portail ne s'affiche pas. Le message "Installation en cours" s'affichera à la place.

Lorsque l'installation du cluster LKE et de l'App Platform est terminée, cliquez sur l'URL fournie du point de terminaison du portail :

La page de connexion suivante s'affiche :

Pour vous connecter, vous devez d'abord obtenir les informations d'identification initiales. Sur la page de détails du cluster, naviguez jusqu'au menu d'options ellipses et sélectionnez Download Kubeconfig (Télécharger Kubeconfig). Le fichier est enregistré dans le dossier Téléchargements de votre ordinateur.

Ouvrez un terminal et enregistrez le chemin d'accès à votre fichier Kubeconfig dans la variable d'environnement $KUBECONFIG. Dans l'exemple de commande, le fichier Kubeconfig est situé dans le dossier Downloads, mais vous devez modifier cette ligne en fonction de l'emplacement de ce dossier sur votre ordinateur :

export KUBECONFIG=~/Downloads/kubeconfig.yaml

Exécutez maintenant la commande suivante pour obtenir le nom d'utilisateur :

kubectl get secret platform-admin-initial-credentials -n keycloak --template={{.data.username}} | base64 -d

Et exécutez la commande suivante pour obtenir le mot de passe :

kubectl get secret platform-admin-initial-credentials -n keycloak --template={{.data.password}} | base64 -d

Utilisez maintenant les informations d'identification obtenues pour vous connecter à la console et modifier le mot de passe initial.

Configurer Object Storage pour la plate-forme d'applications

Lorsque vous êtes connecté à la console, la première chose à faire est de configurer Object Storage. Un message s'affiche pour vous demander si la Plate-forme applicative doit configurer le stockage d'objets pour vous.

Ce n'est pas obligatoire, mais fortement recommandé, car cela évitera les erreurs de manque d'espace disque lors de l'utilisation des volumes de stockage pour les applications intégrées. L'utilisation de Object Storage présente également l'avantage de créer des sauvegardes de toutes les bases de données utilisées par la plateforme et de tous les dépôts Git.

Si vous ne souhaitez pas que la Plate-forme applicative configure le stockage d'objets pour vous, sélectionnez Ignorer pour l'instant. Notez que dans ce cas, certaines fonctionnalités telles que la création de sauvegardes de bases de données ne seront pas disponibles. Vous pouvez lancer l'assistant à tout moment dans la section Maintenance.

  • Cliquez sur Yes.
  • Suivez les instructions pour créer un jeton d'accès personnel et assurez-vous de sélectionner Read/Write pour la catégorie Object Storage . Copiez le jeton API.
  • Collez le jeton d'accès dans l'assistant et sélectionnez la région où les buckets doivent être créés :


  • Cliquez ensuite sur Submit.

Tous les buckets Object Storage requis et une clé d'accès seront maintenant créés dans votre compte et la plateforme d'application sera configurée pour utiliser les buckets afin de stocker les sauvegardes, les journaux, les métriques, les traces et les images. Le jeton d'accès personnel fourni ne sera pas stocké. Les buckets créés auront le nom lke<cluster-id> préfixe.

Activer le port

Maintenant que le stockage d'objets est configuré, nous pouvons composer la plateforme d'applications en activant les applications requises. Dans ce billet, nous voulons construire une image à partir du code source, nous devrons donc activer l'application Harbor car la fonction Build self-service utilise Harbor pour stocker toutes les images des conteneurs.

  • Dans le menu de gauche, cliquez sur Apps.
  • Survolez l'application Harbor et cliquez sur le bouton d'activation.
  • En haut à gauche, cliquez sur Deploy Changes.

Harbor est maintenant installé et configuré pour être utilisé.

Créer une équipe

La prochaine chose à faire est de créer une équipe. Une équipe est un locataire sur la plateforme. C'est comme un espace de noms en tant que service. Chaque équipe peut avoir ses propres membres et ceux-ci auront accès à la console pour utiliser toutes les fonctionnalités en libre-service. Nous parlerons plus en détail des équipes dans les prochains articles. Créons une équipe :

  • Veillez à sélectionner platform dans le view dans la barre supérieure.
  • Cliquez sur Teams dans le menu de gauche.
  • Cliquez sur Create Team.
  • Donnez un nom à l'équipe. Dans les exemples, nous utilisons le nom d'équipe demo. Notez qu'un nom d'équipe a un maximum de 12 caractères et que l'espace de noms créé portera le nom de team-<team-name>.
  • Ignorez toutes les autres options et cliquez sur Submit.
  • Cliquez sur Deploy Changes en haut à gauche de la console.

Créer un référentiel

Maintenant que nous avons créé une équipe, nous pouvons passer à la section team et sélectionnez l'équipe que vous venez de créer. Dans la vue de l'équipe, vous verrez également une section Apps dans le menu de gauche, tout comme dans la vue de la plateforme. Les applications de la vue de l'équipe sont des applications partagées par toutes les équipes sur la plateforme d'applications et des applications qui sont uniquement (dédiées) à l'équipe.

Tous les membres de l'équipe auront accès aux applications de l'équipe. Parce que nous voulons construire une image, nous allons d'abord créer un dépôt avec une application simple utilisant Nginx pour servir une seule page HTML :

  • Cliquez sur l'application Gitea. Gitea est un service Git auto-hébergé fonctionnant sur l'App Platform et est prêt à être utilisé.
  • Sélectionnez "Se connecter avec OpenID" :

  • Sélectionnez "+ New Repository" :

  • Ajoutez un nom pour le référentiel. Appelons le référentiel demo
  • Sélectionnez Make Repository Private et sélectionnez Initialize Repository.
  • Cliquez sur Create Repository.

Ajoutons maintenant un peu de code au référentiel. Nous allons créer une application simple utilisant Nginx pour servir une page HTML.

Ajouter le fichier demo.html avec le contenu suivant :

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Sample Deployment</title>
    <style>
      body {
        color: #ffffff;
        background-color: #0099cc;
        font-family: Arial, sans-serif;
        font-size: 14px;
      }
      h1 {
        font-size: 500%;
        font-weight: normal;
        margin-bottom: 0;
      }
      h2 {
        font-size: 200%;
        font-weight: normal;
        margin-bottom: 0;
      }
      .centered-text {
          text-align: center;
      }
    </style>
  </head>
  <body>
  <div class="centered-text">
      <h1>Welcome to the App Platform</h1>
  </div>
  </body>
</html>

Et ajoutez le fichier Dockerfile avec le contenu suivant :

FROM nginxinc/nginx-unprivileged:stable
COPY demo.html /usr/share/nginx/html/index.html
EXPOSE 8080

Construire, déployer et exposer publiquement l'application

Nous allons maintenant construire, déployer et exposer publiquement l'application. Pour cela, l'App Platform propose un ensemble de formulaires en libre-service. Vous pouvez utiliser le formulaire en libre-service Builds pour créer des images à partir du code source, utiliser l'un des modèles Helm de démarrage rapide du catalogue pour déployer votre application, et utiliser le formulaire en libre-service Services pour exposer publiquement l'application.

Étape 1 : Construction de l'image

  • Veillez à sélectionner team dans le view dans la barre supérieure. N'oubliez pas que vous êtes connecté en tant qu'administrateur de la plate-forme et que vous pouvez voir à la fois la plate-forme et la vue de l'équipe.
  • Cliquez sur Builds dans le menu de gauche.
  • Cliquez sur Create Build.
  • Ajoutez un nom à la construction. Appelons cette construction demo.
  • Utilisez le mode Docker Build (par défaut) et ajoutez l'URL du dépôt Git que nous venons de créer. Dans la prochaine version de l'App Platform, vous pourrez sélectionner l'URL en fonction des dépôts disponibles.
  • Cliquez sur Submit.
  • Cliquez sur Deploy Changes en haut de la barre de menu gauche.

L'App Platform va maintenant créer et exécuter un pipeline Tekton pour cloner l'application à partir du référentiel, construire l'image et pousser l'image vers Harbor. L'image sera poussée vers le registre privé de Harbor qui n'est accessible qu'aux membres de l'équipe.

Vous pouvez maintenant suivre l'état de la construction en ouvrant le tableau de bord Tekton dans la section Apps (dans la vue de l'équipe !). Vous pouvez également cliquer sur Builds dans le menu de gauche. Vous y verrez le build créé par le projet. Cliquez sur le lien PipelineRun pour voir l'état de la construction.

Lorsque le pipeline est prêt, vous pouvez voir l'image dans Harbor. Go à la section Apps dans le menu de gauche et cliquez sur Harbor. Rappelez-vous que vous êtes connecté en tant qu'administrateur de la plate-forme et que vous verrez tous les projets créés par la plate-forme d'applications. Cliquez sur le projet de l'équipe que nous avons créée. Vous y verrez un référentiel appelé team-demo/demo.

Capture d'écran

Étape 2 : Création d'une charge de travail pour déployer notre image

  • Allez d'abord dans la liste des Builds et copiez le nom du dépôt de l'image :


  • Cliquez maintenant sur Catalog dans le menu de gauche.
  • Dans le catalogue, cliquez sur le bouton Quickstart-K8s-Deployment graphique.


  • Cliquez sur l'onglet Valeurs.
  • Ajoutez un nom à la charge de travail. Restons-en au nom demo.
  • Dans le cadre de la Chart values file fixer les image.repository au nom du registre que nous avons ajouté à notre presse-papiers et utiliser latest pour les image.tag.
  • Cliquez sur Submit au bas des valeurs du graphique.
  • Cliquez sur Deploy Changes en haut de la barre de menu gauche

L'App Platform va maintenant créer un ApplicationSet Argo CD pour déployer l'application. Notez que les valeurs et le graphique sont stockés dans des dépôts Git séparés.

Pour voir l'application de démonstration dans Argo CD, cliquez sur Workloads dans le menu de gauche. Vous y verrez la charge de travail créée par le projet. Cliquez sur le lien Application pour voir l'état de la charge de travail.

Étape 3 : Exposer publiquement l'application

Pour que notre application soit opérationnelle, certaines choses doivent être faites. L'App Platform s'appuie sur une architecture d'entrée avancée utilisant Nginx Ingress et Istio. Pour exposer l'application, nous devrons créer un service virtuel Ingress et Istio. Heureusement, l'App Platform automatise tout cela.

  • Cliquez maintenant sur Services dans le menu.
  • Cliquez sur Create Service.
  • Dans la liste déroulante, sélectionnez l'option demo service


  • Sous Exposure cliquer External.
  • Cliquez sur Submit et ensuite Deploy Changes.

Dans la liste des services, vous verrez le service que nous venons de créer et l'URL utilisée pour publier le service. Cliquez sur l'URL.

Récapitulation

Dans ce billet, nous avons provisionné un cluster LKE et activé l'App Platform. Nous avons ensuite configuré le stockage d'objets, activé l'application Harbor, créé une équipe et un dépôt de code. Nous avons ensuite utilisé les formulaires en libre-service de l'App Platform pour construire, déployer et exposer publiquement une application.

Une fois la plate-forme d'application installée, vous pouvez configurer le stockage d'objets pour que toutes les applications intégrées à la plate-forme d'application puissent utiliser cette configuration. Plus besoin de tâtonner pour configurer le stockage d'objets pour des applications telles que Grafana Loki, Thanos, Harbor et Tempo. Avec App Platform sur Akamai, tout est fait pour vous.

L'utilisation de Teams pour la multi-location vous permet de laisser plusieurs groupes d'utilisateurs travailler indépendamment et de leur permettre de partager les mêmes capacités d'infrastructure et de plateforme. Les utilisateurs peuvent utiliser les formulaires en libre-service pour créer, déployer et exposer leurs applications en quelques minutes.

Notez que nous ne faisons qu'effleurer le sommet de l'iceberg. L'App Platform a beaucoup plus à offrir. Nous publierons bientôt d'autres articles pour approfondir l'App Platform et vous montrer comment créer des secrets, configurer des politiques de réseau, travailler avec des politiques de sécurité et utiliser les capacités de la plateforme pour CI/CD, l'observabilité et la sécurité.

Commentaires

Laissez un commentaire

Votre adresse électronique ne sera pas publiée. Les champs obligatoires sont marqués d'un *.