Postfix
Nous avons intégré Postfix au sein de notre cluster Kubernetes afin de mettre en place un relais SMTP interne. Ce service joue un rôle essentiel dans la gestion des communications sortantes par e-mail, notamment pour l’envoi de notifications, d’alertes système (ex : supervision via Prometheus), ou encore de rapports générés automatiquement par nos applications.
Postfix est un agent de transfert de courrier (MTA - Mail Transfer Agent) open source, reconnu pour sa robustesse, sa sécurité et sa simplicité de configuration. En tant que relais SMTP, il ne gère pas la réception des courriels, mais agit comme un intermédiaire entre les applications et un serveur SMTP distant (comme Gmail, Mailjet etc...), en prenant en charge l’envoi des mails générés par nos services.
Déployer Postfix directement dans notre cluster Kubernetes présente plusieurs avantages :
Centralisation des envois : tous les pods et services envoient leurs mails via un point unique.
Simplicité de configuration pour les applications : une seule adresse SMTP à utiliser.
Sécurité : nous pouvons contrôler finement quels services sont autorisés à envoyer des messages.
Fiabilité : Postfix peut mettre en file d’attente les mails en cas d’indisponibilité temporaire du serveur SMTP externe.
Ainsi, ce relais SMTP interne s’intègre parfaitement dans notre architecture, en renforçant la fiabilité, la traçabilité et la maîtrise des communications par e-mail au sein du cluster.
Installation
Pour installer Postfix dans notre cluster kubernetes, nous allons utiliser une image disponible dans le Docker Hub qui est mis à jour régulièrement. Nous avons aussi choisi cette image, car elle inclut le TLS fonction obligatoire lorsque nous voulons utiliser Gmail comme serveur principal.
Nous allons commencer par créer un fichier postfix-namespace.yaml pour le namespace du service :
Lorsqu’on utilise Gmail comme serveur SMTP sortant, une authentification renforcée est exigée. Google ne permet pas l’utilisation directe d’un mot de passe standard pour ce type de connexion depuis une application tierce. Il est donc nécessaire de générer un mot de passe d'application depuis son compte Google :

Nous allons ajouter le fichier postfix-secret.yaml, contenant l'adresse gmail que nous voulons utiliser ainsi que le mot de passe d'application que nous avons préalablement généré :
Nous pouvons passer au fichier principal postfix-deployment.yaml en suivant les variables à utiliser indiqué dans le Docker Hub :
Et pour finir, nous allons ajouter un postfix-service.yaml pour permettre à n'importe quel service dans notre cluster d'utiliser notre relais :
Test
Pour tester que notre relais est bien mis en place, nous pouvons utiliser notre environnement de développement :
Une fois le cluster créé, nous pouvons créer un nouveau pod dans le même namespace que Postfix :
Dans telnet :
