Faut-il utiliser AdGuard Home via Hyper-V ou Kubernetes ?

Cela fait maintenant deux ans que j’ai abandonné Pi-hole au profit de AdGuard Home. Comme pour Pi-Hole, j’ai utilisé Kubernetes. Mais au bout de quelques mois, j’ai préféré créer deux VM sous Hyper-V.

Pourquoi préférer Hyper-V ?

Le passage à Hyper-V m’a permis de résoudre deux problèmes que Kubernetes ne peut pas adresser :

  • Le load balancing.
  • Les mises à jour de sécurité.

Si vous connaissez bien Kubernetes, vous pensez certainement que je délire et que je n’ai pas compris Kubernetes. Oui, en temps normal Kubernetes est très efficace pour gérer les load balancing et la mise à d’application. Mais alors quels sont les vrais problèmes ? Pour faire court :

  • Le service DNS nécessite UDP (le load balcing UDP est une véritable plaie : peu performant et parfois buggé). Avec nginx, j’ai de gros doutes sur la manière dont sont effectués les tests de disponibilité des services en UDP). J’ai donc testé une paire de Load Balancer sans trouver de solution véritablement performante (avec diverses configurations de l’exposition des services via Kubernetes). Cela fonctionne, mais la latence laisse à désirer (elle est perceptible avec une ligne fibre à 1Gb/s).
  • AdGuard Home est rarement mis à jour (l’image du système est donc rarement patchée, et je n'ai pas vraiment envie d'automatisé un process de création d'images pour un produit tiers).

Ne voulant pas transformer mon Home Lab en enfer pour ma famille, la migration vers Hyper-V s’est imposée.

Ma solution

J’utilise deux machines virtuelles sur Hyer-V. Chaque VM est installée sur un serveur différent. Les mises à jour de mes Hyper-V ne coupent donc jamais mon accès à internet.

Sur chaque VM, j’ai déployé Open Suse Leap. Je l’ai configuré en mode serveur transactionnel. J’ai donc un OS Linux récent, patché quotidiennement, et disposant d’un mécanisme de roallback intégré. Secure Boot est aussi de la partie.

AdGuard est installé via le script fourni par AdGuard. Les mises à jour se font simplement. Il suffit de se connecter sur le site web de chaque VM pour lancer l’update. Celle-ci ne prend jamais plus que quelques secondes. Ceci peut se faire via un téléphone. Bien évidemment, pour être informé des mises à jour, je me suis abonné au projet GitHub de AdGuar Home.

Prochaine étape : utiliser puppet pour synchroniser la configuration de mes deux instances.

Conclusion

En utilisant AdGuard Home via Hyper-V, j’ai obtenu une solution sécurisée, fiable, hautement disponible et à faible latence. Je n’ai pas d’option de mise à l’échelle horizontale automatique, mais qui irait configurer plus de 2 serveurs DNS sur son réseau ?

Même si j’aime beaucoup Kubernetes, il faut admettre qu’il n’arrive pas à faire mieux dans ce cas.

Jérémy Jeanson

Comments

You have to be logged in to comment this post.