Kubernetes 无法在AKS群集中启动RabbitMQ映像
我正在尝试在我的AKS群集中启动RabbitMQ映像。组成集群的VM位于专用VNET上,并具有适当的防火墙规则 需要允许哪些内容通过防火墙尚不清楚(或者这是否是问题) 以下是pod启动时的输出: 启动失败 配置文件生成失败:无法创建脏io计划程序 线程6,错误=11 正在将崩溃转储写入: /var/log/rabbitmq/erl_crash.dump…分段错误(内核转储) {“初始化终止于do_引导”,生成_config_文件}初始化终止 在do_引导中(生成配置文件) 正在将崩溃转储写入: /var/log/rabbitmq/erl_crash.dump…完成 我已将持久卷附加到/var/log和/var/lib/rabbitmq,但没有日志文件或任何其他有助于调试此问题的内容。创建了Schema、lost+found和其他rabbitmq文件夹和文件,因此可以进行读/写操作 下面是我用来创建pod的YAML:Kubernetes 无法在AKS群集中启动RabbitMQ映像,kubernetes,rabbitmq,azure-aks,Kubernetes,Rabbitmq,Azure Aks,我正在尝试在我的AKS群集中启动RabbitMQ映像。组成集群的VM位于专用VNET上,并具有适当的防火墙规则 需要允许哪些内容通过防火墙尚不清楚(或者这是否是问题) 以下是pod启动时的输出: 启动失败 配置文件生成失败:无法创建脏io计划程序 线程6,错误=11 正在将崩溃转储写入: /var/log/rabbitmq/erl_crash.dump…分段错误(内核转储) {“初始化终止于do_引导”,生成_config_文件}初始化终止 在do_引导中(生成配置文件) 正在将崩溃转储写入:
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
我对AKS也有同样的问题(我开始认为这是AKS的问题) 基本上,AKS限制了pod可以使用的线程数量,而rabbitmq(以及一般的Erlang)使用了大量线程 您可以在yaml中使用env vars来减少线程数量,如在my config中:
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,但对部署的修复是相同的 请提供您的
rabbitmq.conf
我不会更改docker映像附带的rabbitmq.conf。这将在1.14 GA中修复: