Kubernetes avec Cloud Shell : Déployer une application Python Flask
Dans ce tutoriel, vous utiliserez un compte Oracle Cloud Infrastructure pour configurer une grappe Kubernetes. Ensuite, vous créerez une application Python avec un cadre Flask. Enfin, vous déploierez votre application dans votre grappe à l'aide de Cloud Shell.
Voici les principales tâches :
- Créer un compartiment.
- Configurer une grappe Kubernetes sur OCI.
- Créer une application Python dans un cadre Flask.
- Créer une image Docker.
- Pousser votre image vers le registre de conteneurs pour OCI.
- Utiliser Cloud Shell pour déployer votre application Docker dans votre grappe.
- Vous connecter à votre application à partir d'Internet.

Pour plus d'informations, voir :
Étapes préliminaires
Pour suivre ce tutoriel, vous devez disposer des éléments suivants :
- Un compte Oracle Cloud Infrastructure payant. Voir Inscription à Oracle Cloud Infrastructure.
- Cloud Shell fournit les applications suivantes :
- JDK 8+
- Python 3.6.8+
- Kubectl 1.18.10+
- Apache Maven 3.5+
- Docker 19.0.11+
Avec Cloud Shell, tous les outils nécessaires pour gérer votre application sont déjà installés et prêts à l'emploi, ce qui présente un certain avantage.
1. Préparer
Préparez votre environnement pour créer et déployer votre application.
- Connectez-vous à la console Oracle Cloud Infrastructure.
- Ouvrez le menu de navigation et cliquez sur Gouvernance et administration. Sous Gouvernance, cliquez sur Limites, quotas et utilisation.
- Déterminez votre limite de service pour Régions :
- Filtrez les options suivantes :
- Service : Régions
- Portée : Location
- Source : Nombre de régions abonnées
- compartiment :
<tenancy-name>
(root)
- Recherchez la limite de service :
- Nom de la limite :
subscribed-region-count
- Limite de service : 2 au minimum
- Nom de la limite :
- Filtrez les options suivantes :
- Nombre de coeurs de calcul disponibles pour VM.Standard.E3. Forme flexible :
- Filtrez les options suivantes :
- Service : Calcul
- Portée :
<first-availability-domain>
. Exemple :EMlr:US-ASHBURN-AD-1
- Ressource : Coeurs pour Standard.E3. Instances Flex et BM.Standard.E3.128
- compartiment :
<tenancy-name>
(root)
- Recherchez le nombre de coeurs disponibles :
- Nom de la limite :
standard-e3-core-ad-count
- Disponible : 1 au moins
- Nom de la limite :
- Répétez l'opération pour Portée :
<second-availability-domain>
et<third-availability-domain>
. Chaque région doit comporter au moins un coeur disponible pour cette forme.
- Filtrez les options suivantes :
- Découvrez si vous disposez de 50 Go de volume par blocs disponibles :
- Filtrez les options suivantes :
- Service : Volume par blocs
- Portée :
<first-availability-domain>
. Exemple :EMlr:US-ASHBURN-AD-1
- Taille du volume de ressource (Go)
- compartiment :
<tenancy-name>
(root)
- Recherchez le nombre de coeurs disponibles :
- Nom de la limite :
total-storage-gb
- Disponible : 50 au minimum
- Nom de la limite :
- Répétez l'opération pour Portée :
<second-availability-domain>
et<third-availability-domain>
. Chaque région doit disposer d'au moins 50 Go de volume par blocs disponibles.
- Filtrez les options suivantes :
- Déterminez le nombre d'équilibreurs de charge flexibles dont vous disposez :
- Filtrez les options suivantes :
- Service : LbaaS
- Portée :
<your-region>
. Exemple :us-ashburn-1
- Source :
<blank>
- compartiment :
<tenancy-name>
(root)
- Recherchez le nombre de formes suivantes
- Nom de la limite :
lb-flexible-bandwidth-count
- Disponible : 1 au moins
- Nom de la limite :
- Filtrez les options suivantes :
Ce tutoriel crée trois instances de calcul avec une forme VM.Standard.E2.1 pour les noeuds de grappe. Pour utiliser une autre forme, définissez un filtre pour son nombre de coeurs. Par exemple, pour VM.Standard2.4, définissez un filtre pour Coeurs pour les instances de machine virtuelle et sans système d'exploitation basées sur Standard2 et obtenez le nombre.
Pour obtenir la liste de toutes les formes, voir Formes standard de machine virtuelle.
Ce tutoriel crée trois instances de calcul avec un VM.Standard.E3. Forme flexible pour les noeuds de grappe. Pour utiliser une autre forme, définissez un filtre pour son nombre de coeurs. Par exemple, pour VM.Standard2.4, définissez un filtre pour Coeurs pour les instances de machine virtuelle et sans système d'exploitation basées sur Standard2 et obtenez le nombre.
Pour obtenir la liste de toutes les formes, voir Formes standard de machine virtuelle.
Ce tutoriel utilise un flux de travail de création rapide pour créer une grappe avec un sous-réseau régional public qui héberge un équilibreur de charge flexible. Pour utiliser un autre équilibreur de charge, vous pouvez utiliser un flux de travail personnalisé afin de spécifier explicitement les ressources de réseau existantes à utiliser, y compris les sous-réseaux existants dans lesquels créer les équilibreurs de charge.
Pour utiliser une autre bande passante pour l'équilibreur de charge, définissez un filtre pour son nombre, par exemple Bande passante de 100 Mbit/s ou Bande passante de 400 Mbit/s.
-
Dans le menu de navigation , sélectionnez le menu Profil
, puis sélectionnez Paramètres de l'utilisateur ou Mon profil, selon l'option que vous voyez.
- Cliquez sur Jetons d'authentification.
- Cliquez sur Générer un jeton.
- Indiquez une description.
- Cliquez sur Générer un jeton.
- Copiez le jeton et enregistrez-le.
- Cliquez sur Fermer.
Enregistrez votre jeton juste après l'avoir créé. Vous ne pourrez plus y accéder ultérieurement.
2. Configurer une grappe
Installez et configurez des options de gestion pour votre grappe Kubernetes. Plus tard, vous déploierez votre application dans cette grappe.
Si votre nom d'utilisateur figure dans le groupe Administrateurs, ignorez cette section. Sinon, demandez à votre administrateur d'ajouter la politique suivante à votre location :
allow group <the-group-your-username-belongs> to manage compartments in tenancy
Grâce à ce privilège, vous pouvez créer un compartiment pour toutes les ressources de votre tutoriel.
- Dans le menu de navigation , sélectionnez le menu Profil
, puis sélectionnez Paramètres de l'utilisateur ou Mon profil, selon l'option que vous voyez.
- Dans le volet de gauche, cliquez sur Groupes.
- Dans un carnet, copiez le nom de groupe auquel appartient votre nom d'utilisateur.
- Ouvrez le menu de navigation et cliquez sur Identité et sécurité. Sous identité, cliquez sur Politiques.
- Cliquez sur Créer une politique.
- Entrez les informations suivantes :
- Name:
manage-compartments
- Description :
Allow the group <the-group-your-username-belongs> to list, create, update, delete and recover compartments in the tenancy.
- Compartiment :
<your-tenancy>(root)
- Name:
- Pour Générateur de politiques, cliquez sur Afficher l'éditeur manuel.
- Collez la politique suivante :
allow group <the-group-your-username-belongs> to manage compartments in tenancy
- Cliquez sur Créer.
Informations de référence
Type de ressource compartments
dans Informations détaillées sur les combinaisons Verbes + Type de ressource pour GIA
Créez un compartiment pour les ressources que vous allez créer dans ce tutoriel.
- Connectez-vous à la console Oracle Cloud Infrastructure.
- Ouvrez le menu de navigation et cliquez sur Identité et sécurité. Sous Identité, cliquez sur Compartiments.
- Cliquez sur Créer un compartiment.
- Entrez les informations suivantes :
- Nom :
<your-compartment-name>
- Description :
Compartment for <your-description>.
- compartiment parent :
<your-tenancy>(root)
- Nom :
- Cliquez sur Créer un compartiment.
Inférence : Créez un compartiment
Si votre nom d'utilisateur figure dans le groupe Administrateurs, ignorez cette section. Sinon, demandez à votre administrateur d'ajouter la politique suivante à votre location :
allow group <the-group-your-username-belongs> to manage all-resources in compartment <your-compartment-name>
Avec ce privilège, vous pouvez gérer toutes les ressources de votre compartiment, ce qui vous confère essentiellement des droits administratifs sur celui-ci.
- Ouvrez le menu de navigation et cliquez sur Identité et sécurité. Sous identité, cliquez sur Politiques.
- Sélectionnez votre compartiment dans la liste Compartiments.
- Cliquez sur Créer une politique.
- Entrez les informations suivantes :
- Nom :
manage-<your-compartment-name>-resources
- Description :
Allow users to list, create, update, and delete resources in <your-compartment-name>.
- Compartiment :
<your-tenancy>(root)
- Nom :
- Pour Générateur de politiques, sélectionnez les options suivantes :
- Cas d'utilisation de politique :
Compartment Management
- Modèles de politique commune :
Let compartment admins manage the compartment
- Groupes :
<the-group-your-username-belongs>
- Emplacement :
<your-tenancy>(root)
- Cas d'utilisation de politique :
- Cliquez sur Créer.
Informations de référence
Créez une grappe avec les paramètres par défaut et de nouvelles ressources de réseau au moyen du flux de travail "Création rapide".
Après avoir créé une grappe Kubernetes, configurez Cloud Shell pour l'accès à la grappe.
Maintenant que vous avez configuré l'accès à la grappe, vous pouvez préparer votre application pour le déploiement.
3. Créer votre application Docker
À présent, configurez le cadre Flask sur Cloud Shell. Ensuite, vous créerez et exécuterez une application Python.
Créez votre application Flask.
Exécutez votre application Flask.
Vous avez créé une application Python locale avec le cadre Flask.
Références :
Pour plus d'informations sur Flask, voir la documentation sur Flask.
À présent, créez une image Docker pour votre application Flask.
4. Déployer votre image Docker
Maintenant que votre image Python est créée, vous pouvez la déployer.
Maintenant que vous avez créé votre image Docker locale, poussez-la vers le registre de conteneurs.
Procédez de la façon suivante.
Recherchez votre image dans le registre de conteneurs une fois la commande push terminée.
Étape suivante
Vous avez créé une application Python Hello World, vous l'avez déployée dans une grappe Kubernetes et vous l'avez rendue accessible sur Internet à l'aide du cadre Flask.
Pour en savoir plus sur le développement à l'aide des produits Oracle, consultez les sites suivants :