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'
$ 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'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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=mongodb
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
secret/nationalparks-mongodb-parameters created
secret/nationalparks-mongodb-parameters created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ oc set env --from=secret/nationalparks-mongodb-parameters deploy/nationalparks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
deployment.apps/nationalparks updated
deployment.apps/nationalparks updated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour afficher l'état du déploiement de
nationalparks
, entrez la commande suivante :oc rollout status deployment nationalparks
$ oc rollout status deployment nationalparks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
deployment "nationalparks" successfully rolled out
deployment "nationalparks" successfully rolled out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour afficher l'état du déploiement de
mongodb-nationalparks
, entrez la commande suivante :oc rollout status deployment mongodb-nationalparks
$ oc rollout status deployment mongodb-nationalparks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
deployment "nationalparks" successfully rolled out deployment "mongodb-nationalparks" successfully rolled out
deployment "nationalparks" successfully rolled out deployment "mongodb-nationalparks" successfully rolled out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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/load
$ oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/load
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
"Items inserted in database: 2893"
"Items inserted in database: 2893"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie (trimmée)
, {"id": "Great Zimbabwe", "latitude": "-20.2674635", "longitude": "30.9337986", "name": "Great Zimbabwe"}]
, {"id": "Great Zimbabwe", "latitude": "-20.2674635", "longitude": "30.9337986", "name": "Great Zimbabwe"}]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour ajouter des étiquettes à l'itinéraire, entrez la commande suivante :
oc label route nationalparks type=parksmap-backend
$ oc label route nationalparks type=parksmap-backend
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
route.route.openshift.io/nationalparks labeled
route.route.openshift.io/nationalparks labeled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour récupérer vos itinéraires et afficher votre carte, entrez la commande suivante :
oc get routes
$ oc get routes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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