Supporter les noeuds multi-clusters
Pour maximiser l'emploi des ressources, il est souhaité qu'on puisse exécuter des masters et/ou des workers de plusieurs clusters sur une même machine physique. Le premier emploi est la gestion des masters, qui ont vocation à être concentrés sur une seule machine pour le labo, les tests et la prod afin de consommer vraiment les ressources de la machine, qui est largement sous-utilisée sinon.
La piste initiale était de lancer plusieurs wesher et plusieurs k3s sur chaque noeud. On a beaucoup progressé sur cette piste, ce qui a motivé une partie des changements de wesher et quelques changements sur k3s. Cela dit, on prend un mur : les nouveaux changements requis sur k3s pour que ça fonctionne jusqu'au bout sont trop lourd. Principalement, la gestion réseau, à base de iptables, n'est pas namespacée par défaut, et les intsances k3s se rentrent dedans.
Il serait bien sûr possible de ne pas exécuter flannel pour éviter d'avoir le kube-proxy et donc le iptables, mais celà empêche d'accéder aux services par l'ip de service. Malheureusement, cela rend inexploitables les webhooks (MutatingWebHook), puisque l'apiserver ne peut alors plus attaquer les services de webhook. Typiquement, cela devient difficile d'employer cert-manager dans ce contexte par exemple.
Un travail de fond doit être relancé pour faire avancer ce point. On peut continuer de travailler sur les clusters sans webhook en attendant.