Kubernetes : Déployer une application Node Express
Dans ce tutoriel, vous utiliserez un compte Oracle Cloud Infrastructure pour configurer une grappe Kubernetes. Ensuite, vous déploierez une application Node Express dans votre grappe.
Voici les principales tâches :
- Configurer une grappe Kubernetes sur OCI.
- Configurer l'interface CLI OCI pour accéder à votre grappe.
- Créer une application Node Express et une image Docker.
- Pousser votre image vers OCIR.
- Déployer votre application Docker Node.js 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 :
- Pour le registre de conteneurs, Kubernetes et les équilibreurs de charge :
- Un compte Oracle Cloud Infrastructure payant.
- Voir Inscription à Oracle Cloud Infrastructure.
- Pour créer des applications et des images Docker :
- L'un des environnements locaux suivants :
- Une machine MacOS ou Linux.
- Une machine Windows prenant en charge Linux. Par exemple :
- Les applications suivantes sur votre environnement local :
- JDK 11, et définissez JAVA_HOME dans .bashrc.
- Le programme d'installation de Python 3.6.8+ et pip pour Python 3
- Kubernetes Client 1.11.9+
- Apache Maven 3.0+
- Docker 19.0.3+
- Git 1.8+
- Node.js 10+
- L'un des environnements locaux suivants :
Si vous souhaitez utiliser une instance de calcul Linux gratuite pour OCI afin de gérer votre déploiement, consultez les sections suivantes pour savoir comment installer les logiciels requis.
- Installation d'une machine virtuelle Linux sur Oracle Cloud Infrastructure à l'aide d'une forme de calcul de type Toujours gratuit. Vous aurez besoin d'une machine prenant en charge
sshpour vous connecter à votre instance Linux.- Installer une machine virtuelle Oracle Linux
- Suivez les sections 2 et 3.
- Si vous disposez d'un compte payant, pour la section 2, sélectionnez vos options de calcul en fonction de vos offres.
- Pour vous connecter à votre instance, effectuez les étapes 1 à 5 de la section 4.
- Ignorez les instructions Apache.
- Installer une machine virtuelle Ubuntu
- Installer une machine virtuelle Oracle Linux
Installez Node.js sur votre système.
Pour installer Node.js et NPM, exécutez les commandes suivantes :
- Oracle Linux :
sudo yum updateConfigurez le référentiel Yum pour Node.js. Installez ensuite l'ensemble
nodejs.sudo yum install -y oracle-nodejs-release-el7 sudo yum install -y nodejs - Ubuntu :
sudo apt updateInstallez les ensembles
nodejsetnpm.sudo apt install -y nodejs sudo apt install -y npm - Vérifiez l'installation.
node -v npm -v
Si vous voulez tester votre application Node Express à l'aide d'un navigateur, rendez le port 3000 disponible sur votre instance Linux.
- Oracle Linux
sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --add-service=https --permanent sudo firewall-cmd --reload - Ubuntu Linux
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 3000 -j ACCEPT sudo netfilter-persistent save
Procédez de la façon suivante pour sélectionner le sous-réseau public de votre VCN et ajouter la règle de trafic entrant.
- Ouvrez le menu de navigation et cliquez sur Service de réseau, puis sur Réseaux en nuage virtuels.
- Sélectionnez le VCN que vous avez créé avec votre instance de calcul.
- Maintenant que votre nouveau VCN est affiché, cliquez sur le lien de sous-réseau <your-subnet-name>.
Les informations sur le sous-réseau public s'affichent avec les listes de sécurité au bas de la page. Un lien vers la liste de sécurité par défaut de votre VCN est présent.
- Cliquez sur le lien Liste de sécurité par défaut.
Les règles de trafic entrant par défaut pour votre VCN s'affichent.
- Cliquez sur Ajouter des règles de trafic entrant.
Une boîte de dialogue Ajouter des règles de trafic entrant s'affiche.
- Entrez les informations suivantes pour la règle de trafic entrant.
Définissez la règle de trafic entrant comme suit :
- Sans état : Coché
- Type de source : CIDR
- CIDR source : 0.0.0.0/0
- Protocole IP : TCP
- Intervalle de ports sources : (Laissez vide)
- Intervalle de ports de destination : 3000
- Description : Autoriser les connexions HTTP
- Cliquez sur Ajouter une règle de trafic entrant.
À présent, les connexions HTTP sont autorisées. Votre VCN est configuré pour Node Express.
Vous avez créé une règle de trafic entrant qui rend votre instance disponible à partir d'Internet.
- Vérifiez votre installation courante.
python3 --version - Pour Python 3, exécutez les commandes suivantes :
- Oracle Linux :
sudo yum updatesudo yum install -y python3 - Ubuntu :
sudo apt updatesudo apt install -y python3
- Oracle Linux :
- Vérifiez l'installation de pip pour Python3.
pip3 -VExemple de sortie si pip pour Python3 est installé :
pip <version> from xxx/lib/python3.x/site-packages/pip (python 3.x) - Pour installer pip pour Python 3, exécutez les commandes suivantes :
- Oracle Linux :
sudo yum updatesudo yum install -y python3-pip - Ubuntu :
sudo apt updatesudo apt install -y python3-pip
- Oracle Linux :
- Vérifiez l'installation de pip pour Python 3.
pip3 -V
- Vérifiez votre installation courante :
kubectl version --clientSi vous disposez de Kubernetes, la version est<major-version>.<minor-version>. Par exemple, pour la version 1.20, voici ce que vous obtenez :version.Info{Major:"1", Minor:"20"... - Pour installer le client
kubectl, consultez les liens suivants : - Vérifiez l'installation.
kubectl version --client
- Vérifiez votre installation courante :
docker -v - Oracle Linux
Pour installer Docker sur Oracle Linux, exécutez les commandes suivantes.
sudo yum install docker-enginesudo systemctl start dockersudo systemctl enable dockerNote : La dernière commande permet à Docker de démarrer au redémarrage.
- Ubuntu Linux
Pour installer Docker sur Ubuntu Linux, consultez le lien suivant : Obtenir Docker
- Vérifiez l'installation.
docker -v
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)
- Déterminez le stockage de volume par blocs dont vous disposez :
- 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)
- Déterminez le nombre d'équilibreurs de charge flexibles disponibles :
- Nom de la limite :
lb-flexible-count - Disponible : 1 au moins
- Nom de la limite :
- Filtrez les options suivantes :
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.
L'environnement virtuel Python virtualenv crée un dossier contenant tous les exécutables et bibliothèques de votre projet.
L'encapsuleur virtualenvwrapper est une extension de virtualenv. Il fournit un ensemble de commandes, ce qui rend le travail avec des environnements virtuels beaucoup plus agréable. De plus, il réunit tous vos environnements virtuels au même endroit. L'encapsuleur virtualenvwrapper active le remplissage à l'aide de la touche de tabulation pour les noms d'environnement.
- Installez
virtualenv.pip3 install --user virtualenv - Installez
virtualenvwrapper.pip3 install --user virtualenvwrapper - Recherchez l'emplacement du script
virtualenvwrapper.sh.grep -R virtualenvwrapper.shExemples de chemins :- Exemple pour Linux :
/home/ubuntu/.local/bin/virtualenvwrapper.sh - Exemple pour MacOS :
/usr/local/bin/virtualenvwrapper.sh
- Exemple pour Linux :
- Configurez l'encapsuleur d'environnement virtuel dans
. bashrc.sudo vi .bashrcAjoutez le texte suivant.
# set up Python env export WORKON_HOME=~/envs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=' -p /usr/bin/python3 ' source <path-to-virtualenvwrapper.sh>Remplacez
<path-to-virtualenvwrapper.sh>par sa valeur.En fonction de l'emplacement des binaires Python3 dans votre environnement, mettez à jour
/usr/bin/python3avec son emplacement correct.Enregistrez le fichier.
- Activez les commandes dans la fenêtre courante.
source ~/.bashrcExemple de sortie :virtualenvwrapper.user_scripts creating /home/ubuntu/envs/premkproject virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postmkproject virtualenvwrapper.user_scripts creating /home/ubuntu/envs/initialize virtualenvwrapper.user_scripts creating /home/ubuntu/envs/premkvirtualenv virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postmkvirtualenv virtualenvwrapper.user_scripts creating /home/ubuntu/envs/prermvirtualenv virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postrmvirtualenv virtualenvwrapper.user_scripts creating /home/ubuntu/envs/predeactivate virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postdeactivate virtualenvwrapper.user_scripts creating /home/ubuntu/envs/preactivate virtualenvwrapper.user_scripts creating /home/ubuntu/envs/postactivate
- Démarrez un environnement virtuel.
workon cli-app - Vérifiez que le nom de votre environnement virtuel,
cli-app, précède votre invite de commande.Exemple :
(cli-app) ubuntu@<ubuntu-instance-name:~$ - Installez l'interface CLI OCI.
pip3 install oci-cli - Testez l'installation :
oci --versionSi tout est configuré correctement, la version s'affiche.
oci --help
- Entrez la commande suivante dans votre environnement virtuel :
oci setup config - Entrez vos réponses obtenues à la section Collaborer les informations requises :
- Emplacement de votre configuration [$HOME/.oci/config] :
<take-default> - OCID d'utilisateur :
<user-ocid> - OCID de la location :
<tenancy-ocid> - région (par exemple, us-ashburn-1) :
<region-identifier>
- Emplacement de votre configuration [$HOME/.oci/config] :
- Entrez les informations suivantes pour configurer vos clés de chiffrement d'API OpenSSL :
- Generate a new API Signing RSA key pair? [Y/n] : O (Oui)
- Répertoire de vos clés [$HOME/.oci] :
<take-default> - Nom de votre clé [oci_api_key]
<take-default>
- Désactivez l'environnement virtuel :
deactivateLe préfixe
(cli-app)n'est plus affiché devant le nom de votre environnement.
Votre clé privée est
oci_api_key.pem et votre clé publique est oci_api_key_public.pem.- Activez l'environnement
cli-app:workon cli-app - Affichez la clé publique.
cat $HOME/.oci/oci_api_key_public.pem - Copiez la clé publique.
- Ajoutez la clé publique à votre compte d'utilisateur :
- Allez à la console.
- 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 Clé d'API.
- Cliquez sur Ajouter une clé d'API.
- Cliquez sur Coller la clé publique.
- Collez la valeur de l'étape précédente, y compris les lignes contenant
BEGIN PUBLIC KEYetEND PUBLIC KEY. - Cliquez sur Ajouter.
- Chaque fois que vous souhaitez utiliser l'interface CLI OCI, activez-la en tapant :
workon cli-app - Lorsque vous modifiez des noms de projet,
workondésactive votre environnement de travail courant. De cette façon, vous pouvez rapidement passer d'un environnement à l'autre.
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 tenancyGrâ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.
- Sélectionnez votre compartiment dans la liste déroulante Compartiments.
- 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.
Référence : Type de ressource compartments dans combinaisons verbes + type de ressource pour IAM
Créez un compartiment pour les ressources que vous allez créer dans ce tutoriel.
- Se connecter à 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 accorde 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 déroulante 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 : Politiques communes
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 votre système local 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 une application locale
Créez une application locale et une image Docker pour l'application.
Créez votre application Node.js.
Vous avez configuré votre application Node.js.
Exécutez votre application Node.js.
Vous avez créé une application Hello World à l'aide de Node.js et d'Express.
Références :
- Pour des informations détaillées sur cet exemple, voir Introduction à Express.
Créez ensuite une image Docker pour votre application Express Node.js.
4. Déployer votre image Docker
Poussez votre image Express Node.js vers le registre de conteneurs pour OCI. Utilisez ensuite l'image pour déployer votre application.
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 Hello World, vous l'avez déployée dans une grappe Kubernetes et vous l'avez rendue accessible sur Internet à l'aide du cadre Node Express.
Pour en savoir plus sur le développement à l'aide des produits Oracle, consultez les sites suivants :
, puis sélectionnez Location : <your_tenancy_name>.