4.7. Connexion à une base de données
Déployez et connectez une base de données MongoDB dans laquelle l'application national-parks-app
stocke les informations de localisation. Une fois que vous avez marqué l'application national-parks-app
comme backend pour l'outil de visualisation de cartes, le déploiement de parksmap
utilise le mécanisme de découverte d'OpenShift Container Platform pour afficher automatiquement la carte.
Conditions préalables
- Vous devez avoir accès à un cluster OpenShift Container Platform.
-
Vous devez avoir installé l'OpenShift CLI (
oc
). - Vous avez une image déployée.
Procédure
Pour vous connecter à une base de données, entrez la commande suivante :
$ oc new-app quay.io/centos7/mongodb-36-centos7 --name mongodb-nationalparks -e MONGODB_USER=mongodb -e MONGODB_PASSWORD=mongodb -e MONGODB_DATABASE=mongodb -e MONGODB_ADMIN_PASSWORD=mongodb -l 'app.kubernetes.io/part-of=national-parks-app,app.kubernetes.io/name=mongodb'
Exemple de sortie
--> Found container image dc18f52 (8 months old) from quay.io for "quay.io/centos7/mongodb-36-centos7" MongoDB 3.6 ----------- MongoDB (from humongous) is a free and open-source cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with schemas. This container image contains programs to run mongod server. Tags: database, mongodb, rh-mongodb36 * An image stream tag will be created as "mongodb-nationalparks:latest" that will track this image --> Creating resources with label app.kubernetes.io/name=mongodb,app.kubernetes.io/part-of=national-parks-app ... imagestream.image.openshift.io "mongodb-nationalparks" created deployment.apps "mongodb-nationalparks" created service "mongodb-nationalparks" created --> Success
Ressources complémentaires
4.7.1. Création d'un secret
L'objet Secret
fournit un mécanisme pour contenir des informations sensibles telles que les mots de passe, les fichiers de configuration du client OpenShift Container Platform, les informations d'identification du référentiel source privé, etc. Les secrets découplent le contenu sensible des pods. Vous pouvez monter des secrets dans des conteneurs à l'aide d'un plugin de volume ou le système peut utiliser des secrets pour effectuer des actions au nom d'un pod. La procédure suivante ajoute le secret nationalparks-mongodb-parameters
et le monte dans la charge de travail nationalparks
.
Conditions préalables
- Vous devez avoir accès à un cluster OpenShift Container Platform.
-
Vous devez avoir installé l'OpenShift CLI (
oc
). - Vous avez une image déployée.
Procédure
Pour créer un secret, entrez la commande suivante :
$ oc create secret generic nationalparks-mongodb-parameters --from-literal=DATABASE_SERVICE_NAME=mongodb-nationalparks --from-literal=MONGODB_USER=mongodb --from-literal=MONGODB_PASSWORD=mongodb --from-literal=MONGODB_DATABASE=mongodb --from-literal=MONGODB_ADMIN_PASSWORD=mongodb
Exemple de sortie
secret/nationalparks-mongodb-parameters created
Pour mettre à jour la variable d'environnement afin d'attacher le secret mongodb à la charge de travail
nationalpartks
, entrez la commande suivante :$ oc set env --from=secret/nationalparks-mongodb-parameters deploy/nationalparks
Exemple de sortie
deployment.apps/nationalparks updated
Pour afficher l'état du déploiement de
nationalparks
, entrez la commande suivante :$ oc rollout status deployment nationalparks
Exemple de sortie
deployment "nationalparks" successfully rolled out
Pour afficher l'état du déploiement de
mongodb-nationalparks
, entrez la commande suivante :$ oc rollout status deployment mongodb-nationalparks
Exemple de sortie
deployment "nationalparks" successfully rolled out deployment "mongodb-nationalparks" successfully rolled out
Ressources complémentaires
4.7.2. Chargement des données et affichage de la carte des parcs nationaux
Vous avez déployé les applications parksmap
et nationalparks
, puis la base de données mongodb-nationalparks
. Cependant, aucune donnée n'a été chargée sur into.
Conditions préalables
- Vous devez avoir accès à un cluster OpenShift Container Platform.
-
Vous devez avoir installé l'OpenShift CLI (
oc
). - Vous avez une image déployée.
Procédure
Pour charger les données des parcs nationaux, entrez la commande suivante :
$ oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/load
Exemple de sortie
"Items inserted in database: 2893"
Pour vérifier que vos données sont correctement chargées, entrez la commande suivante :
$ oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/all
Exemple de sortie (trimmée)
, {"id": "Great Zimbabwe", "latitude": "-20.2674635", "longitude": "30.9337986", "name": "Great Zimbabwe"}]
Pour ajouter des étiquettes à l'itinéraire, entrez la commande suivante :
$ oc label route nationalparks type=parksmap-backend
Exemple de sortie
route.route.openshift.io/nationalparks labeled
Pour récupérer vos itinéraires et afficher votre carte, entrez la commande suivante :
$ oc get routes
Exemple de sortie
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD nationalparks nationalparks-user-getting-started.apps.cluster.example.com nationalparks 8080-tcp edge None parksmap parksmap-user-getting-started.apps.cluster.example.com parksmap 8080-tcp edge None
Copiez et collez le chemin d'accès
HOST/PORT
que vous avez récupéré ci-dessus dans votre navigateur web. Votre navigateur devrait afficher une carte des parcs nationaux du monde entier.Figure 4.1. Les parcs nationaux dans le monde
Ressources complémentaires