首页 文章

芹菜不会连接到rabbitmq经纪人为kubernetes

提问于
浏览
0

我目前正在尝试在Kubernetes(和minikube)上使用celery,rabbitmq和flower部署基本任务队列和前端 . 我在这里关注这个例子:

https://github.com/kubernetes/kubernetes/tree/release-1.3/examples/celery-rabbitmq

我可以按照指示让一切顺利;但是,当我在 ./celery-app-addDockerfile 上运行 docker build 时,将图像推送到我自己的存储库并将 endocode/celery-app-add 替换为 <mine>/celery-app-add ,我无法让示例再次运行 . 我假设源控件中的 Dockerfile 是错误的,因为如果我拉动 endocode/celery-app-add 图像并在图像中运行bash,它将作为 root 用户加载(而不是 user<mine>/celery-app-add Dockerfile ) .

启动所有容器和服务后,我可以在日志中看到以下内容:

2016-08-18T21:05:44.846591547Z AttributeError: 'ChannelPromise' object has no attribute '__value__'

芹菜日志显示:

2016-08-19T01:38:49.933659218Z [2016-08-19 01:38:49,933: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@rabbit:5672//: [Errno -2] Name or service not known.

如果我在容器中回显 RABBITMQ_SERVICE_SERVICE_HOST ,它在运行 kubectl get services 后显示为 rabbitmq-service 中指示的主机 .

我不确定从哪里开始 . 任何建议表示赞赏 . 另外,我将 USER root (赢得't run this in production, don'担心)添加到我的 Dockerfile 并仍然遇到上述相同的问题 . docker history endocode/celery-app-add 也没有太大帮助 .

1 回答

  • 0

    事实证明这个问题是基于这个芹菜issue . Celery更喜欢在应用程序配置中设置的任何内容上使用 CELERY_BROKER_URL . 为了解决这个问题,我在 Dockerfile 中取消了 CELERY_BROKER_URL 并正确选择了我的配置 .

相关问题