Migration vers Kubernetes, l’aventure

Posted by

J’ai terminé depuis peu la réinstallation de mon système avec Kubernetes, je publie donc la suite de mon article sur la migration vers Kubernetes.

Séparation des services

L’objectif des machines virtuelles était de séparer les services afin d’augmenter la sécurité, j’ai donc essayé de retrouver la même chose avec Kubernetes. Chacune de mes machines virtuelle est donc devenue un namespace, avec en plus une séparation entre la version française et la version anglaise d’Ellàs War. Afin de préserver les ressources de mon serveur et d’en facilité la maintenabilité, les services qui bougent peu (blog et forums) partagent le même docker Mariadb. Cette migration m’a aussi permis d’utiliser le même nom de base de donnée ainsi que le même port dans tous les versions d’Ellàs War.

Problèmes rencontrés

Migrer en douceur

La migration d’un système est toujours problématique. Mon objectif était de réduire au maximum les inévitables coupures de service. Je partage un serveur dédié avec un ami, la création d’une nouvelle machine virtuelle était donc la solution la plus simple. J’ai donc créé une machine virtuelle dont j’ai augmenté les caractéristiques à chaque nouvelle migration.

Celle-ci comporte trois interfaces réseau :

  • Publique, désactivée au début
  • Privée, afin de permettre l’accès depuis le reverse proxy
  • Nat, pour avoir internet et ne pas dépendre de ma machine virtuelle proxy

Cette migration étape par étape m’a permis de minimiser l’interruption de service. Afin d’être certain de ma migration, j’ai configuré Nginx en reverse proxy TCP et routé les ports 80/443 vers ma nouvelle machine. Pour la migration finale, j’ai configuré les interfaces réseau à l’avance, éteint le reverse proxy et redémarré la VM.

Gestion des logs

Dans ma précédente installation, j’utilisais les logs standards du système. Je suis donc passé à ELK, avec leur nouvelle fonctionnalité de SIEM mais ce sera l’occasion d’un autre article.

Conclusion

Quelques choses que j’ai appris lors de cette migration :

  • Bien lister les services qui tournent sur la machine et ne pas oublier les crons
  • Prévoir la migration du système de sauvegardes
  • Forcer Kubernetes à écouter sur l’interface privée, j’ai dû réinitialiser ma configuration, elle écoutait sur l’interface Nat
  • Toujours utiliser un reverse proxy en entrée, cela donne une grande flexibilité

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *