[英]redis cluster K8S connection
我在K8S中運行redis集群:
kubectl get services -o wide
redis-cluster ClusterIP 10.97.31.167 <none> 6379/TCP,16379/TCP 22h app=redis-cluster
從節點本身連接到群集IP時,連接工作正常:
redis-cli -h 10.97.31.167 -c
10.97.31.167:6379> set some_val 1
-> Redirected to slot [11662] located at 10.244.1.9:6379
OK
簡單轉發到遠程計算機將不起作用:
devvm:ssh -L 6380:10.97.31.167:6379 -i user.pem admin@k8snode.com
在開發VM上:
root@devvm:~# redis-cli -h 127.0.0.1 -p 6380 -c
127.0.0.1:6380> set jaheller 1
-> Redirected to slot [11662] located at 10.244.1.9:6379
Redis連接此時超時。
我相信在所有情況下,您只需要使用kubernetes類型的Service對象公開服務即可:
群集IP (以防您在群集內部使用它)
NodePort (用於外部訪問)
LoadBalancer (如果具有公共訪問權限,並且您在雲提供商上)
帶有外部負載平衡器的NodePort(如果您在本地基礎架構上,則用於公共外部訪問)
無需擔心單個吊艙。 服務將照顧他們。
文檔:
https://kubernetes.io/docs/concepts/services-networking/service/
我認為您不需要任何端口重定向。 不過,您必須在集群上構建一個入口控制器,即nginx入口控制器
然后,您只需設置具有公開訪問權限的單個入口服務即可為群集流量提供服務。
這是Ingress Controller訪問群集服務的示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: redis-cluster-ing
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- http:
paths:
- backend:
serviceName: redis-cluster
servicePort: 6379
您可以查看分步說明
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.