Installer le contrôleur d’Ingress Contour

Cette fiche pratique propose une procédure pas à pas de l’installation du Contrôleur d’Ingress (ou Ingress Controller en anglais ) Contour sur vos clusters de travail.

Cette fiche est donnée simplement à titre d’exemple, mais vous pouvez tout à fait utiliser le contrôleur d’ingress de votre choix. L’idée étant de donner un point de départ dans l’utilisation d’un contrôleur d’ingress.


Pour en savoir plus sur ce qu’est un contrôleur d’ingress vous pouvez vous reporter aux pages suivantes :

Kubernetes : Ingress Controller

KaaS Standard#ingress_controller

Prérequis

Avant de déployer Contour sur votre cluster de travail certains prérequis doivent être installés sur votre machine d’administration mais aussi sur votre cluster de travail.

Sur la machine d’administration

Installez les outils de package Tanzu dont la procédure est disponible sur la page ci-dessous :

Sur le cluster

Configurez le vipSubnet à utiliser

La configuration de ce vipSubnet permet de choisir sur quel réseau externe votre contrôleur d’ingress va être exposé.


Merci de suivre les étapes listés sur la page suivante : ICI

Installez le gestionnaire de package sur votre cluster

Connectez vous sur le cluster de destination, puis appliquez le yaml de déclaration du kapp controller

Ajoutez le dépot

Installez Cert-Manager

Récupérez la version a installer.


Pour cela, utilisez la colonne VERSION. Notez cette information, car celle-ci sera utile dans les étapes suivantes.

Installez cert manager dans le namespace de votre choix :

  • Remplacez NAMESPACE et VERSION en utilisant la version récupérée dans l’étape précédente.

Example :

Vérifiez que cert-manager s’est installé correctement.

Installation de Contour

Créez un fichier nommé : contour-data-values.yaml avec le contenu fourni dans la colonne de droite.

Récupérez la version a installer.


Pour cela, utilisez la colonne VERSION. Notez cette information, car celle-ci sera utile dans les étapes suivantes.

Installez contour dans le namespace de votre choix :

  • Remplacez NAMESPACE et VERSION en utilisant la version récupérée dans l’étape précédente.

Exemple :

Vérifiez que Contourr s’est installé correctement.

Exemple d’utilisation de votre contrôleur d’Ingress

Pour faire ce test, nous allons déployer deux PODS. Le premier POD affichera une page web avec le texte « apple » , l’autre POD afficher le teste « banana ».

En fonction de l’adresse de la page (url) utilisée pour accéder au service, le contrôleur d’ingress saura quel POD utiliser en fonction de la configuration en place.

Ceci ne requiert qu’une seule adresse IP externe, cette IP correspond à celle du service de type LoadBalancer nommé Envoy que nous avons déployé au moment de l’installation de Contour.

Création des PODs

Créez les deux fichiers de définition des PODS ainsi que les deux services en utilisant les informations ci-contre.

apple.yaml

banana.yaml

Deployez les PODS

Après quelques secondes, vérifiez que les PODS soient bien en STATUS RUNNING.

IP du contrôleur d’Ingress

Récupérez l’adresse IP externe qui a été affectée au contrôleur d’ingress au moment du déploiement de Contour.

Pour ce faire, lancez la commande ci-contre et notez la valeur de la colonne EXTERNAL-IP.

Créez un fichier nommé ingress.yaml avec le contenu fourni ci-contre.

  • remplacez [IP] par l’adresse ip externe récupérez dans l’étape précédente.
  • Vous pouvez également utiliser votre propre zone DNS à la place de nip.io. Dans ce cas, remplacez le nom complet avec celui de votre choix.

Deployez l’objet Ingress

Vérifiez le status de l’objet

Testez l’accès à la page web.

Ouvrez un navigateur web depuis une machine qui est en capacité de joindre l’adress ip externe de votre contrôleur ingress. Assurez-vous qu’aucun filtrage réseau n’empêche la communication.

Accédez aux adresses suivantes :

  • http://banana.[IP].nip.io (remplacez [IP] par l’adresse ip externe)
  • http://apple.[IP].nip.io (remplacez [IP] par l’adresse ip externe)

Test supplémentaire

Il est aussi possible d’utiliser un même nom DNS mais de rediriger le flux en fonction du chemin de la page demandée.

Par exemple :

  • http://myapp.[IP].nip.io/apple utilisera le POD apple
  • http://myapp.[IP].nip.io/banana utilisera le POD banana

Le fichier yaml ci-contre permet cette configuration.