-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Redis Sentinel Configuration #1126
Comments
Should I be adding the environment variables in this section of the |
The current environment is rather complex, can redis sentinel be tested in a non-K8S environment? If there is no problem, it is proved that the environment variable passed by k8s or the redis configuration is incorrect. If the same error occurs, it could be our bug. |
@zhijian-pro Unfortunately it is very difficult for us to test in a non-K8s environment as all our deployments are managed in K8s clusters. Regarding my most recent comment, I did add the environment variables in the
where My The Since passing the
I was then expecting to be able to mount a volume to a separate pod to actually use juicefs. However, when trying to create and mount a
Why would the |
This looks like a bug in CSI, transfer it. |
Hi, @deanpatel2 can you find the mount pod and debug into it?
Also, make sure sentinel is enabled in redis, see https://github.com/bitnami/charts/blob/main/bitnami/redis/values.yaml#L1129 |
I will check on this. |
@zwwhdls Is there a way to pass an environment variable to the mount pod with |
What happened:
I have Redis deployed in Sentinel mode (3 replicas) in a Kubernetes cluster. I am trying to get it configured to work with JuiceFS as the meta URL.
What you expected to happen:
I read the docs on this in Redis Best Practices. It states that the URL should be formatted like this:
redis[s]://[[USER]:PASSWORD@]MASTER_NAME,SENTINEL_ADDR[,SENTINEL_ADDR]:SENTINEL_PORT[/DB]
and I am passing the
SENTINEL_PASSWORD
as an environment variable. My master set name isredis-sentinel-master
.Given that Redis is deployed in K8s, there are no static IPs, they are load balanced behind a service. The services are:
So I formatted the
SENTINEL_ADDR
fields with bothredis-sentinel
andredis-sentinel-headless
. For example withredis-sentinel
:redis://:****@redis-sentinel-master,redis-sentinel-node-0.redis-sentinel.<namespace>.svc.cluster.local,redis-sentinel-node-1.redis-sentinel.<namespace>.svc.cluster.local,redis-sentinel-node-2.redis-sentinel.<namespace>.svc.cluster.local:26379/2
Both did not work and I at least one of them to work. Instead, I got these logs on the juicefs-csi-controller pod:
It seems clearly auth-related, as I was able to configure the sentinel connection correctly by disabling auth. However I am passing the password as the Docs say. So I am not sure what I am doing wrong. Am I passing the password incorrectly? Does it need more than
SENTINEL_PASSWORD
,REDIS_PASSWORD
,META_PASSWORD
?How to reproduce it (as minimally and precisely as possible):
Deploy Redis in Sentinel mode to Kubernetes and deploy JuiceFS with meta URL pointing to the Sentinel.
Anything else we need to know?
Environment:
juicefs --version
) or Hadoop Java SDK version: I am deploying JuiceFS as a helm chart in Kubernetes, using version 0.23.5 of juicefs-csi-drivercat /etc/os-release
): Not sureuname -a
): Not sureThe text was updated successfully, but these errors were encountered: