web-dev-qa-db-fra.com

Comment puis-je obtenir une ip statique de sortie par espace de noms dans un cluster EKS

Ma configuration actuelle implique un cluster EKS avec plusieurs espaces de noms (multi-locataires) sur de nombreux nœuds d'EKS dans des sous-réseaux privés. J'aimerais que le trafic de sortie des pods ait une EIP dédiée par espace de noms. AFAIK Il n'y a pas de solutions de tablette disponibles pour ce problème. J'ai cherché longtemps et dur sur Internet mais en vain. Voici certaines des solutions que j'ai fatiguées, mais finalement frapper un barrage routier.

Istio Egress Gateway vous permet de diriger tout le trafic sortant des pods via une gate de gateway de sortie dédiée. Mais la gateway PODWAY EGRESS assumera l'IP du nœud sur lequel il fonctionne, ce qui ne fonctionnera pas pour mon cas d'utilisation. De plus, je n'ai pas trouvé de documentation décente sur la manière dont je peux configurer plusieurs pods de passerelle Egress à plusieurs nœuds.

Calico Egress Gateway Très similaire à la solution Istio Egress Gateway et la même contrainte s'applique

Solution personnalisée J'ai commencé à implémenter une solution personnalisée, où je configure plusieurs nœuds de passerelle dans le sous-réseau public avec une EIP dédiée. Je peux maintenant modifier les itinéraires/passerelles IP dans le nœud EKS privé, pour aligner le trafic via un nœud de passerelle spécifique en fonction de la source IP de la source de POD. Cette solution ressent très kludgy et les frais généraux opérationnels d'une telle solution sont très élevés.

J'ai examiné des solutions comme - ceci , mais n'a pas eu de chance avec eux.

Existe-t-il une meilleure approche/solution à ce problème?

P.s. Mon groupe de production est extrêmement grand, je ne peux pas me permettre de supporter un cluster pour chaque espace de noms.

J'ai cross posté cette question sur Stackoverflow aussi. Je ne suis vraiment pas sûr que le forum est un meilleur endroit cette question. Heureux de le supprimer le cas échéant.

Résumé de la discussion sur ce sujet pour plus de visibilité ici:

Il existe une demande de fonctionnalité créée dans Github , mais aucune mise à jour depuis mars.

Calico Enterprise résoudrait pour cet étui d'utilisation spécifique en attribuant une adresse IP à l'espace de noms comme décrit dans leur intégration pour KubeNettes ici :

La passerelle EGRESS définit une IP de sortie statique pour SNAT sur le trafic laissant le cluster et l'applique à un espace de noms spécifique. Ensuite, il désigne une gousse dans un espace de noms en tant que POD EGRESS et attribue une adresse IP routable qui est utilisée spécifiquement pour la circulation de sortie, laissant le cluster.

Mais dans la pratique, la sortie de la passerelle EGRESS n'est PAS AWS VPS, mais elle ne peut donc pas attribuer des EIPS aux pods de sortie. Lorsque le trafic sort des pods de passerelle, il suppose l'adresse IP du Node lui-même comme IP source.

beaucoup de nœuds d'EKS différents dans des sous-réseaux privés ...

L'EIP ne fonctionne pas dans le sous-réseau privé. Si vous avez des nœuds de travail désignés dans le sous-réseau public, vous pouvez utiliser EIP et inverser le proxy sur ces nœuds accessibles publics pour exposer des services dans un réseau privé. Vous pouvez ensuite utiliser Calico Egress Gateway sur ces nœuds publics pour les pods de proxy inverse à son tour utilisez l'EIP sous-jacente.

1
Bazhikov