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
4.7.1. Création d'un secret Copier lienLien copié sur presse-papiers!
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=mongodbExemple de sortie
secret/nationalparks-mongodb-parameters createdPour 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/nationalparksExemple de sortie
deployment.apps/nationalparks updatedPour afficher l'état du déploiement de
nationalparks, entrez la commande suivante :$ oc rollout status deployment nationalparksExemple de sortie
deployment "nationalparks" successfully rolled outPour afficher l'état du déploiement de
mongodb-nationalparks, entrez la commande suivante :$ oc rollout status deployment mongodb-nationalparksExemple de sortie
deployment "nationalparks" successfully rolled out deployment "mongodb-nationalparks" successfully rolled out
4.7.2. Chargement des données et affichage de la carte des parcs nationaux Copier lienLien copié sur presse-papiers!
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/loadExemple 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/allExemple 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-backendExemple de sortie
route.route.openshift.io/nationalparks labeledPour récupérer vos itinéraires et afficher votre carte, entrez la commande suivante :
$ oc get routesExemple 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 NoneCopiez et collez le chemin d'accès
HOST/PORTque 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