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

时间:2016-08-19 02:22:01

标签: docker rabbitmq celery kubernetes

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

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

我可以按照说明完成所有工作;但是,当我在docker build的{​​{1}}上运行Dockerfile时,将图像推送到我自己的存储库并将./celery-app-add替换为endocode/celery-app-add,我无法获取再运行的例子。我假设源代码管理中的<mine>/celery-app-add是错误的,因为如果我拉动Dockerfile图像并在图像中运行bash,它会以endocode/celery-app-add用户身份加载(而不是root 1}}与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后显示为rabbitmq-service中指示的主机。

我不确定从哪里开始。任何建议表示赞赏。另外,我在kubectl get services添加了USER root(不会在生产中运行,不要担心),但仍遇到上述相同的问题。 Dockerfile也没有太大帮助。

1 个答案:

答案 0 :(得分:0)

原来这个问题是基于芹菜issue。 Celery更喜欢使用CELERY_BROKER_URL覆盖可在应用配置中设置的任何内容。要解决此问题,我在CELERY_BROKER_URL中取消设置Dockerfile,并正确选择了我的配置。