【发布时间】:2020-05-18 11:01:33
【问题描述】:
在附加 configmap 时尝试在 K8s 中启动 rabbitmq 会出现以下错误:
/usr/local/bin/docker-entrypoint.sh: line 367: rabbitmq-plugins: command not found
/usr/local/bin/docker-entrypoint.sh: line 405: exec: rabbitmq-server: not found
完全相同的设置在 docker-compose 上运行良好,所以我有点迷茫。使用rabbitmq:3.8.3
这是我的部署中的一个 sn-p:
"template": {
"metadata": {
"creationTimestamp": null,
"labels": {
"app": "rabbitmq"
}
},
"spec": {
"volumes": [
{
"name": "rabbitmq-configuration",
"configMap": {
"name": "rabbitmq-configuration",
"defaultMode": 420
}
}
],
"containers": [
{
"name": "rabbitmq",
"image": "rabbitmq:3.8.3",
"ports": [
{
"containerPort": 5672,
"protocol": "TCP"
}
],
"env": [
{
"name": "RABBITMQ_DEFAULT_USER",
"value": "guest"
},
{
"name": "RABBITMQ_DEFAULT_PASS",
"value": "guest"
},
{
"name": "RABBITMQ_ENABLED_PLUGINS_FILE",
"value": "/opt/enabled_plugins"
}
],
"resources": {},
"volumeMounts": [
{
"name": "rabbitmq-configuration",
"mountPath": "/opt/"
}
],
"terminationMessagePath": "/dev/termination-log",
"terminationMessagePolicy": "File",
"imagePullPolicy": "IfNotPresent"
}
],
"restartPolicy": "Always",
"terminationGracePeriodSeconds": 30,
"dnsPolicy": "ClusterFirst",
"securityContext": {},
"schedulerName": "default-scheduler"
}
},
这是配置:
{
"kind": "ConfigMap",
"apiVersion": "v1",
"metadata": {
"name": "rabbitmq-configuration",
"namespace": "e360",
"selfLink": "/api/v1/namespaces/default/configmaps/rabbitmq-configuration",
"uid": "28071976-98f6-11ea-86b2-0244a03303e1",
"resourceVersion": "1034540",
"creationTimestamp": "2020-05-18T10:55:58Z"
},
"data": {
"enabled_plugins": "[rabbitmq_management].\n"
}
}
【问题讨论】:
-
这看起来像 Kubernetes Deployment 和 ConfigMap 对象,用 JSON 而不是 YAML 编写。 Vagrant是如何出现在画面中的?工作的普通 Docker 配置是否足够简单,您可以将其包含在上下文中?
-
对不起,我应该说 Kubernetes 而不是 Vagrant。编辑部署/配置映射时,上述对象来自 K8s dash。可能最好将流浪者排除在外。我还发现卷安装实际上是导致问题的原因,而不是 ENV 变量。如果没有卷挂载,容器就会启动。我已将 configmap 重命名为与卷的名称不匹配,但没有效果。
标签: docker kubernetes rabbitmq