Récupérer le fichier kubeconfig.yml
export KUBECONFIG=<absolute-path-to>/kubeconfig.yml
Vous allez utiliser un cluster distant, il ne faut donc pas utiliser de commandes commençant par minikube
.
Pour chacun de vos déploiements, pods, services (ou autres), veuillez ajouter votre nom (ou un identifiant que vous m'envoyez par mail/slack) pour permettre d'identifier votre travail.
C'est également important pour les labels selector
pour éviter les collisions entre le travail de deux élèves.
(un service qui cible des pods de deux personnes).
Créer 2 deploiements (toutes les images sont fournis) :
- redis (une base https://redis.io/)
- cloud.canister.io:5000/arhturescriou/node-redis (un serveur que j'ai codé)
Cette image est privé il faut donc ajouter l'utilisation du secret pour l'utiliser :
spec:
imagePullSecrets:
- name: regcred
Le serveur (node-redis) nécessite des variables d'environment pour fonctionner
env:
- name: PORT
value: <port>
- name: REDIS_URL
value: redis://<address-of-base>
Créer un service pour communiquer avec le serveur (node-redis) depuis l'extérieur.
Un fois qu'un serveur fonctionne augmentez le nombre de pods (node-redis), entre 3 et 5. Et vérifier que cela fonctionne toujours.
Veuillez regrouper tous vos fichiers yaml de déploiement (et ou commande lancées en bash) dans un repository git muni d'un readme.md.
Pousser le repository en ligne (github, gitlab etc). Et m'envoyer le lien sur slack (cela peut être fait en debut d'examen, je regarderai la dernière version poussée)
Ci-joint un frontend React pour notre application : https://github.com/arthurescriou/redis-react.
Suivez l'instruction pour build le projet et déployez la sur le cluster. (Pensez à configurer l'URL du backend par défaut localhost:5400)
Visualiser les ressources déployées
kubectl get pods
kubectl get services
kubectl get deployments
Récupérer les log d'un pod
kubectl logs <pod-id>
Utiliser un fichier yaml, dans votre cas l'image docker ne devrais pas changer donc il est possible de seulement apply le yaml une fois créé
Pensez à nommer votre yaml avec votre nom (et pas juste pod.yaml, pour éviter les collisions)
kubectl create -f file.yaml
kubectl delete -f file.yaml
kubectl apply -f file.yaml