Dochází k tomu, že zpřístupňujete svou instanci Redis pomocí NodePort. Kubernetes si pro NodePorts vyhrazuje velmi specifický rozsah vysoce číslovaných síťových portů, aby nedošlo ke konfliktu s běžně používanými porty, jako je 22 nebo v tomto případě 6379 jako Redis.
Když jste spustili kubectl get svc
služba, která byla vrácena, znamená, že Redis je přesměrován na hostitele na portu 32649
. Proto při pokusu o připojení k Redis byste měli používat tento port místo 6379. (Ujistěte se také, že vaše brána firewall a topologie sítě jsou také správně nakonfigurovány).
Takže, kam odsud půjdeme? No, těžko říct. Postrádám informace, abych zjistil, odkud vaše klientské připojení pochází a kde běží váš cluster. V případě, že je váš klient ve vašem clusteru (také znám jako další modul), měli byste se podívat na zřízení služby ClusterIP namísto služby NodePort.
V případě, že je váš klient externí vůči vašemu clusteru, radím vám, abyste se podívali na to, jak poskytovat typy služeb LoadBalancer a prostředky Ingress v Kubernetes.
To vám umožní roztočit vyhrazené IP adresy. Ze kterého můžete bez problémů obsluhovat vaši aplikaci na jakémkoli portu, názvu hostitele nebo podadresáři. K tomu však budete muset mít nainstalovaný LoadBalancer i Ingress Controller, protože Kubernetes API Server se dodává s žádným.
Pokud používáte Cloud Provider, je pravděpodobné, že již máte LoadBalancer Controller. Jednoduše si vyžádejte jeden a poté kubectl get svc
a uvidíme, jestli někdy postoupí z nevyřízeného stavu. Pokud pracujete na holém kovu, můžete použít vyrovnávání fyzické zátěže, jako je F5 Big IP. Nebo můžete použít ovladač Virtual Load Balancer, jako je MetalLB.
Dva oblíbené Ingress Controllery jsou NGINX a Istio. Kontrolér NGINX se zabývá výhradně správou ingresu, zatímco Istio se zabývá tím, stejně jako vysoce konfigurovatelným síťováním a vylepšeným zabezpečením.
Pokud potřebujete další informace nebo pomoc s touto otázkou, dejte mi vědět. Vždy rádi pomůžeme!