3
votes

Adresse IP externe unique par pod Kubernetes

Je dois faire évoluer mon application afin qu'elle ne soit pas interdite pour avoir dépassé la limite de débit de demandes d'un site qu'elle utilise fréquemment (qui autorise jusqu'à X demandes par minute et par IP).
J'avais l'intention d'utiliser kubernetes et de répartir les demandes entre plusieurs travailleurs, mais j'ai vu que tous les pods obtiennent la même adresse IP externe. alors que puis-je faire?


3 commentaires

Vous pouvez écrire une entrée interne et lui demander d'effectuer un équilibrage de charge sur les réplicas.


@vancleff J'ai lu à ce sujet, et si je comprends bien, cela n'affectera pas l'IP externe


Vous devriez probablement discuter avec (et payer) le fournisseur d'API, afin d'augmenter votre limite. Travailler autour des mécanismes de protection d'un tiers n'est pas si agréable! ... Sinon, pourriez-vous faire une mise en cache dans votre application pour réduire la fréquence des appels vers le tiers?


4 Réponses :


4
votes

J'ai utilisé kubernetes DaemonSet pour attacher un pod à chaque nœud, et au lieu de le mettre à l'échelle en modifiant le déploiement, je le fais en ajoutant de nouveaux nœuds.


0 commentaires

0
votes

Si vous exécutez dans le cloud, vous pouvez créer des nœuds de travail avec des adresses IP publiques. Ensuite, vos pods utiliseront l'adresse IP publique du nœud. Et puis vous pouvez en quelque sorte distribuer vos pods sur les nœuds en utilisant plusieurs répliques ou DaemonSet.


5 commentaires

Plusieurs passerelles NAT avec IP publique peuvent-elles être utiles ici?


Avec la passerelle NAT, vous devez configurer un routage personnalisé par instance et dans l'ensemble, je ne sais pas si c'est même possible. Et cela vous coûtera. D'autre part, les adresses IP publiques des instances sont gratuites.


Utilisez le déploiement au lieu d'un ensemble de démons avec affinité de nœud ou antiaffinité de nœud avec l'hôte comme réseau.


Oui, les NAT acceptés coûteront. Cela ne devrait-il pas être inférieur au coût de l'instance?


Peut-être que plusieurs NAT GW sont moins chers que plusieurs instances, mais je n'ai aucune idée de la façon dont vous allez configurer le routage des instances dans ce cas.



0
votes

ne vous inquiétez pas pour obtenir une adresse IP externe car si vous avez 3 worker et un master comme ci-dessous

curl 192.168.1.10:30000
curl 192.168.1.11:30000
curl 192.168.1.12:30000
curl 192.168.1.13:30000

et par exemple si vous exposez nginx sur un port 30000, les kubernetes ouvrent ce port dans chaque hochement de tête et vous pouvez y accéder par

worker1   192.168.1.10
worker2   192.168.1.11
worker3   192.168.1.12
master    192.168.1.13

et si vous voulez que chaque worker ait un pod, vous pouvez utiliser DaemonSet ou vous pouvez utiliser label pour le nœud que vous voulez p >


0 commentaires

0
votes

Cela a probablement moins à voir avec votre implémentation Kubernetes qu'avec la configuration de votre réseau. Cela dépendrait de la source de «l'adresse IP externe» que vous référencez: vous est-elle donnée par votre FAI? Si vous recherchez sur Google "Quelle est mon adresse IP", est-ce que cela correspond à l'adresse IP unique dont vous parlez? Si tel est le cas, vous devrez négocier avec votre FAI pour obtenir des adresses IP externes supplémentaires.

À noter que @JamesJJ a raison. L'utilisation d'adresses IP supplémentaires pour «tromper» l'API afin qu'elle autorise plus de connexions est très probablement une violation des conditions d'utilisation de ce site et peut entraîner la résiliation de votre accès.


0 commentaires