celery 在Kubernetes找不到redis

rqenqsqc  于 2021-06-10  发布在  Redis
关注(0)|答案(1)|浏览(386)

我在kubernetes豆荚里放celery 。找不到服务器:
错误/mainprocess]consumer:无法连接到redis://:**@redis-master:6379/1:错误-3连接到redis-master:6379. 查找超时。。4秒后再试(1/100)
如果我通过“kubectl exec-it”连接到同一个pod并运行命令,我就成功了:
redis cli-uredis://:@redis-master:6379/1键“*”
(空列表或集合)
如何解决此问题?
更新1:dns中存在明显问题:
如果我将主机设置为域名:

export REDIS_HOST=redis-master.dev.svc.cluster.local
celery worker --app src
TIMEOUT

如果我将主机设置为域名:

export REDIS_HOST=10.0.13.13
celery worker --app src
OK

同时:


# dig redis-master.dev.svc.cluster.local

; <<>> DiG 9.11.5-P4-5.1+deb10u1-Debian <<>> redis-master.dev.svc.cluster.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49071
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;redis-master.dev.svc.cluster.local. IN A

;; ANSWER SECTION:
redis-master.dev.svc.cluster.local. 30 IN A 10.0.13.13

;; SERVER: 10.0.0.10#53(10.0.0.10)

因此,问题缩小到:为什么celery 不使用dns?
更新2:python库dnspython中的问题。版本2.0.0-解决版本1.16.0中的错误-就像一个魅力
解决方案
管道安装dnspython==1.16.0

wfsdck30

wfsdck301#

回答我自己:
这是一个dnspython错误。解决方案:

pip install dnspython==1.16.0

相关问题