Redis
 sql >> Database >  >> NoSQL >> Redis

Fallimento temporaneo nella risoluzione dei nomi redis

Quello che sta succedendo è che stai esponendo la tua istanza Redis con una NodePort. Kubernetes riserva una gamma molto specifica di porte di rete con numero elevato per le NodePort per evitare conflitti con le porte comunemente utilizzate come 22 o, in questo caso, 6379 come Redis.

Quando hai eseguito kubectl get svc il servizio che è stato restituito indica che Redis è in corso di port forwarding all'host sulla porta 32649 . Pertanto, quando esegui il tentativo di connessione con Redis, dovresti utilizzare questa porta anziché 6379. (assicurati inoltre che anche il firewall e la topologia di rete siano configurati correttamente).

Allora, dove andiamo da qui? Beh, è ​​difficile per me dirlo. Mi mancano le informazioni per dire da dove proviene la tua connessione client e dove è in esecuzione il tuo cluster. Nel caso in cui il tuo client si trovi all'interno del tuo cluster (AKA un altro Pod), dovresti prendere in considerazione il provisioning di un servizio ClusterIP invece di un servizio NodePort.

Nel caso in cui il tuo client sia esterno al tuo cluster, il mio consiglio è di esaminare come eseguire il provisioning dei tipi di servizio LoadBalancer e delle risorse Ingress in Kubernetes.

Ciò ti consentirà di creare IP dedicati. Da cui puoi servire la tua applicazione su qualsiasi porta, nome host o sottodirectory senza problemi. Per farlo, tuttavia, dovrai avere sia un LoadBalancer che un Ingress Controller installati poiché il server API Kubernetes non viene fornito con nessuno dei due.

Se utilizzi un Cloud Provider è probabile che tu disponga già di un LoadBalancer Controller. Basta semplicemente richiederne uno e poi kubectl get svc e vedere se avanza mai dallo stato In attesa. Se operi su bare metal, puoi utilizzare un sistema di bilanciamento del carico fisico come un F5 Big IP. Oppure puoi utilizzare un controller di bilanciamento del carico virtuale come MetalLB.

Due popolari controller di ingresso sono NGINX e Istio. Il controller NGINX si occupa esclusivamente della gestione degli ingressi mentre Istio si occupa di questo, nonché di reti altamente configurabili e sicurezza avanzata.

Fammi sapere se hai bisogno di ulteriori informazioni o aiuto con questa domanda. Sempre felice di aiutare!