K8s
Au lieu de se connecter à un serveur spécifique, de télécharger la source, de construire une image, etc., nous allons plutôt déployer notre conteneur dans le nuage. Le nuage se chargera de faire fonctionner le conteneur pour nous !
Nous allons utiliser un cluster Kubernetes que je vous ai fourni pour déployer votre conteneur.
Je fournirai à chacun d'entre vous un fichier de configuration qui vous donnera un accès exclusif à mon cluster kubernetes.
Retournez à votre DevContainer. J'ai déjà installé l'application kubectl
dans votre DevContainer qui nous permet de communiquer avec un cluster Kubernetes.
Copiez le fichier kubeconfig-....yaml
dans votre devcontainer, sous le dossier k8s
(créez ce dossier s'il n'existe pas encore).
Dans le terminal de votre DevContainer, naviguer dans le dossier k8s
:
Commencez par créer une variable d'environnement qui pointe vers votre fichier kubeconfig :
Nous pouvons maintenant interagir avec le cluster Kubernetes, en listant tous les pods (ou conteneurs) qui sont en cours d'exécution :
Deployment
Nous allons maintenant indiquer à k8s que nous voulons déployer notre API sur le cluster. Nous allons écrire un fichier de configuration de type "deployment".
Remplacez drkevinglass/devopsapi:1.0.0
par le nom de votre image envoyé à Docker Hub.
Lancez votre image dans le cluster avec :
Si tout se passe bien, l'image sera récupéré de Docker Hub, et lancé automatiquement sur mon cluster !
Vérifions :
A chaque fois qu'on veut modifier notre deploiement, par exemple, le nombre de copies, ou mettre à jour la version de notre API, on modifie le fichier deployment.k8s.yaml
, et on éxecute kubectl apply ...
Service
Pour l'instant, notre déploiement est en cours, mais il n'est pas disponible à l'extérieur. Nous devons établir ce lien. Il fonctionne comme suit :
Load-Balancer → Ingress → Service → Deployment → Pods
Nous avons déjà configuré le "Deployment" qui a généré automatiquement plusieurs Pods.
Le LoadBalancer est une ressource payante de mon fournisseur de services que j'ai déjà configurée pour vous. Je vous donnerai l'adresse IP précise en classe.
Il ne reste plus qu'à connecter le Ingress et le Service.
Créez un nouveau fichier pour le service :
Ensuite, déployez le service vers le cluster :
Ingress
Nous voulons maintenant indiquer au cluster comment rediriger les requêtes entrantes. Pour ce faire, nous utilisons un contrôleur Ingress.
Comme nous partageons tous le même cluster (et donc la même adresse IP), nous allons distinguer nos déploiements par un sous-chemin.
Par exemple, une requête à
devrait être dirigée vers mon API.
Par contre, une requête vers
devrait être redirigée vers l'API de cet étudiant.
Crée un nouveau fichier :
Remplacez MON_CHEMIN_UNIQUE
par un chemin qui vous identifie, par exemple, votre adresse e-mail (ayant remplacé le @
et les .
par des tirés -
)
Déployez cette configuration avec :
Tester
Vous devriez pouvoir envoyer une requête au serveur maintenant !
Félicitations ! Vous avez réussi à mettre en place votre environnement de production !
Dernière mise à jour