Redis
 sql >> Base de données >  >> NoSQL >> Redis

Échec temporaire de la résolution de nom redis

Ce qui se passe, c'est que vous exposez votre instance Redis avec un NodePort. Kubernetes réserve une plage très spécifique de ports réseau à numéro élevé pour les NodePorts afin d'éviter tout conflit avec les ports couramment utilisés comme 22 ou, dans ce cas, 6379 comme Redis.

Lorsque vous avez exécuté kubectl get svc le service renvoyé indique que Redis est transféré vers l'hôte sur le port 32649 . Par conséquent, lorsque vous effectuez votre tentative de connexion contre Redis, vous devez utiliser ce port au lieu de 6379. (Assurez-vous également que votre pare-feu et la topologie du réseau sont également correctement configurés).

Alors, où allons-nous partir d'ici? Eh bien, c'est difficile pour moi de dire. Je manque d'informations pour indiquer à la fois d'où provient votre connexion client et où votre cluster s'exécute. Dans le cas où votre client se trouve dans votre cluster (AKA un autre pod), vous devriez envisager de provisionner un service ClusterIP au lieu d'un service NodePort.

Dans le cas où votre client est externe à votre cluster, je vous conseille d'examiner comment provisionner les types de service LoadBalancer et les ressources Ingress dans Kubernetes.

Cela vous permettra de créer des adresses IP dédiées. À partir duquel vous pouvez servir votre application sur n'importe quel port, nom d'hôte ou sous-répertoire sans aucun problème. Pour ce faire, cependant, vous devrez installer à la fois un LoadBalancer et un contrôleur d'entrée, car le serveur d'API Kubernetes n'est livré avec ni l'un ni l'autre.

Si vous utilisez un fournisseur de cloud, il est probable que vous disposiez déjà d'un contrôleur LoadBalancer. Demandez-en simplement un, puis kubectl get svc et voyez s'il sort de l'état En attente. Si vous travaillez sur du métal nu, vous pouvez utiliser un équilibreur de charge physique comme un F5 Big IP. Ou vous pouvez utiliser un contrôleur Virtual Load Balancer comme MetalLB.

Deux contrôleurs d'entrée populaires sont NGINX et Istio. Le contrôleur NGINX s'occupe exclusivement de la gestion des entrées tandis qu'Istio s'en occupe, ainsi que de la mise en réseau hautement configurable et de la sécurité renforcée.

Faites-moi savoir si vous avez besoin de plus d'informations ou d'aide pour cette question. Toujours heureux de vous aider !