【问题标题】:Rabbitmq in Kubernetes: Command not foundKubernetes 中的 Rabbitmq:找不到命令
【发布时间】: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


【解决方案1】:

那是因为您在 /opt 中蒙卷,这是 rabbitmq 的主路径。

因此,入口点脚本找不到任何 rabbitmq 二进制文件。
可以看到rabbitmq Dockerfile here

【讨论】:

  • 我认为这对 docker-compose 有效,因为它安装的是单个文件而不是整个目录......该死......谢谢......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
  • 2021-02-10
  • 1970-01-01
相关资源
最近更新 更多