我正在我的Kubernetes群集中运行bitnami/redis掌舵图。我的django应用程序将其用作会话缓存。
CACHES = {
'default':
{
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://redis-service:6379/0",
"OPTIONS":
{
"CLIENT_CLASS": "django_redis.client.DefaultClient"
}
}
}
下面是session\u引擎变量的样子
SESSION_ENGINE="django.contrib.sessions.backends.cache"
当我将redis作为单个副本部署运行时,这个设置运行得很好。当我切换到bitnamis helm chart(带有sentinel)时,当我尝试登录到admin页面时,我开始间歇性地出现这个错误
无法创建新会话密钥。很可能缓存不可用。
如果我切换到单吊舱redis部署,它可以正常工作。但使用比特纳米 Helm 图似乎是造成这个问题的原因。
我可以确认我可以从我的django吊舱到达redis集群。更让人困惑的是,这是间歇性的。
任何帮助都将不胜感激。
更新1。
在检查了redis的日志之后,我得到了这个
1601409529.593320 [0 10.2.1.77:58836] "EXISTS" ":1:django.contrib.sessions.cachendvrotljwn4502p278mbmvxy1l5xgkqk"
1601409529.594428 [0 10.2.1.77:58836] "EXISTS" ":1:django.contrib.sessions.cachezw19k1uqzb164h1n9x8b8dcjywrwltva"
1601409529.595374 [0 10.2.1.77:58836] "EXISTS" ":1:django.contrib.sessions.cachejf4y14zd7ll9rjtc8fh6ecicu3mqsbpn"
1601409529.596342 [0 10.2.1.77:58836] "EXISTS" ":1:django.contrib.sessions.cacheaacgflnnjvwjkb4kjahsr8qir3qxgua1"
1601409529.597401 [0 10.2.1.77:58836] "EXISTS" ":1:django.contrib.sessions.cachelhx6l6hgikkhb958iynvdmjyz4tqkwig"
1601409529.598442 [0 10.2.1.77:58836] "EXISTS" ":1:django.contrib.sessions.cachewaemv1rhy6j1lel5j87vt30e3c5saanq"
1601409529.599485 [0 10.2.1.77:58836] "EXISTS" ":1:django.contrib.sessions.cachegs5rmaz3sc8scevoczbcozd6fh4svukl"
1601409529.600538 [0 10.2.1.77:58836] "EXISTS" ":1:django.contrib.sessions.cache19k1kr63ql4odwwqc9e0l1uv7oj4ck0j"
1601409529.601610 [0 10.2.1.77:58836] "EXISTS" ":1:django.contrib.sessions.cachemdci7awb7z5wmdcim093tfehu2e60ru6"
1601409529.602664 [0 10.2.1.77:58836] "EXISTS" ":1:django.contrib.sessions.cacheeubmkiqvc0gnn273er86c2qoscauqzqa"
看起来是从这个开始的https://github.com/django/django/blob/master/django/contrib/sessions/backends/cache.py#l42
因此,django尝试将密钥插入缓存并避免冲突,它在抛出异常之前尝试了10000次。
我可以看到redis里没有钥匙。
成功登录时,日志如下所示
1601410010.012538 [0 127.0.0.1:53662] "ping"
1601410010.308631 [0 10.2.1.74:6379] "SET" ":1:django.contrib.sessions.cachee7f697vcuv1fyxfyvgw6uexyv2w58o1a" "\x80\x05}\x94." "PX" "1209600000" "NX"
1601410010.323639 [0 10.2.1.74:6379] "SET" ":1:django.contrib.sessions.cachee7f697vcuv1fyxfyvgw6uexyv2w58o1a" "\x80\x05\x95\xb0\x00\x00\x00\x00\x00\x00\x00}\x94(\x8c\r_auth_user_id\x94\x8c\x0224\x94\x8c\x12_auth_user_backend\x94\x8c)django.contrib.auth.backends.ModelBackend\x94\x8c\x0f_auth_user_hash\x94\x8c@dccdd9eb53e5ebfcd0f544de6aefa932892729837c6d16257be00d5715204eda\x94u." "PX" "1209600000"
暂无答案!
目前还没有任何答案,快来回答吧!