Was passiert, ist, dass Sie Ihre Redis-Instanz mit einem NodePort verfügbar machen. Kubernetes reserviert einen sehr spezifischen Bereich hochnummerierter Netzwerkports für NodePorts, um Konflikte mit häufig verwendeten Ports wie 22 oder in diesem Fall 6379 wie Redis zu vermeiden.
Wenn Sie kubectl get svc
ausgeführt haben Der zurückgegebene Dienst zeigt an, dass Redis an den Host an Port 32649
weitergeleitet wird . Wenn Sie Ihren Verbindungsversuch mit Redis durchführen, sollten Sie daher diesen Port anstelle von 6379 verwenden. (Stellen Sie außerdem sicher, dass Ihre Firewall und Netzwerktopologie ebenfalls richtig konfiguriert sind).
Also, wohin gehen wir von hier aus? Nun, es ist schwer für mich zu sagen. Mir fehlen Informationen, um zu sagen, woher Ihre Clientverbindung stammt und wo Ihr Cluster ausgeführt wird. Für den Fall, dass sich Ihr Client in Ihrem Cluster befindet (auch bekannt als ein anderer Pod), sollten Sie die Bereitstellung eines ClusterIP-Dienstes anstelle eines NodePort-Dienstes prüfen.
Für den Fall, dass sich Ihr Client außerhalb Ihres Clusters befindet, empfehle ich Ihnen, sich mit der Bereitstellung von LoadBalancer-Diensttypen und Ingress-Ressourcen in Kubernetes zu befassen.
Auf diese Weise können Sie dedizierte IPs einrichten. Von wo aus Sie Ihre Anwendung problemlos auf jedem Port, Hostnamen oder Unterverzeichnis bereitstellen können. Dazu müssen Sie jedoch sowohl einen LoadBalancer als auch einen Ingress Controller installiert haben, da der Kubernetes API Server mit keinem von beiden ausgeliefert wird.
Wenn Sie einen Cloud-Anbieter verwenden, haben Sie wahrscheinlich bereits einen LoadBalancer-Controller. Fordern Sie einfach eine an und dann kubectl get svc
und sehen Sie, ob es jemals aus dem Zustand „Ausstehend“ fortschreitet. Wenn Sie mit Bare Metal arbeiten, können Sie einen physischen Load Balancer wie eine F5 Big IP verwenden. Oder Sie können einen Virtual Load Balancer-Controller wie MetalLB verwenden.
Zwei beliebte Ingress-Controller sind NGINX und Istio. Der NGINX-Controller kümmert sich ausschließlich um das Ingress-Management, während Istio sich darum kümmert, sowie hochgradig konfigurierbare Netzwerke und verbesserte Sicherheit.
Lassen Sie mich wissen, wenn Sie weitere Informationen oder Hilfe bei dieser Frage benötigen. Immer gerne helfen!