我正在尝试在我的AKS集群中启动RabbitMQ映像。组成群集的虚拟机位于专用VNET上,并且具有防火墙规则。
不清楚允许通过防火墙的内容是什么(或者甚至是问题所在)。
这是Pod启动时的输出:
启动失败
配置文件生成失败:无法创建脏io调度程序 线程6,错误= 11
故障转储正在写入: /var/log/rabbitmq/erl_crash.dump ...分段错误(核心已转储)
{“ init在do_boot中终止”,generate_config_file} init终止 在do_boot(generate_config_file)中
故障转储正在写入: /var/log/rabbitmq/erl_crash.dump ...完成
我已将永久卷附加到/ var / log和/ var / lib / rabbitmq,但是没有日志文件或其他任何有助于调试此问题的文件。创建了Schema,lost + found和其他Rabbitmq文件夹和文件,因此可以很好地进行读取/写入。
这是我用来创建广告连播的YAML:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mayan-broker
spec:
replicas: 1
template:
metadata:
labels:
app: mayan-broker
spec:
containers:
- name: mayan-broker
image: rabbitmq:3
volumeMounts:
- name: broker-storage
mountPath: /var/lib/rabbitmq
- name: broker-logging
mountPath: /var/log/rabbitmq
ports:
- containerPort: 5672
env:
- name: RABBITMQ_DEFAULT_USER
value: mayan
- name: RABBITMQ_DEFAULT_PASS
value: mayan
- name: RABBITMQ_DEFAULT_VHOST
value: mayan
volumes:
- name: broker-storage
persistentVolumeClaim:
claimName: rabbit-claim
- name: broker-logging
persistentVolumeClaim:
claimName: logging-claim
没有请求的卷和装载的YAML,产生相同的结果:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: mayan-broker
spec:
replicas: 1
template:
metadata:
labels:
app: mayan-broker
spec:
containers:
- name: mayan-broker
image: rabbitmq:3
ports:
- containerPort: 5672
env:
- name: RABBITMQ_DEFAULT_USER
value: mayan
- name: RABBITMQ_DEFAULT_PASS
value: mayan
- name: RABBITMQ_DEFAULT_VHOST
value: MAYAN
答案 0 :(得分:1)
我在AKS上也遇到了同样的问题(我开始认为这是AKS的事情)。
基本上,AKS限制了pod可以使用的线程数,而Rabbitmq(以及所有Erlang的所有内容)都使用了很多线程。
您可以在yaml中使用env vars来减少线程数,就像在我的配置中一样:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: rabbitmq
spec:
serviceName: "rabbitmq"
replicas: 1
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
containers:
- name: rabbitmq
image: rabbitmq:3.7-management
env:
# this needs to be there because AKS (as of 1.14.3)
# limits the number of thread a pod can use
- name: RABBITMQ_IO_THREAD_POOL_SIZE
value: "30"
ports:
- containerPort: 5672
name: amqp
resources:
limits:
memory: 4Gi
requests:
cpu: "1"
memory: 1Gi
我使用的是statefulsets,但修复方法与部署相同。
答案 1 :(得分:0)