Kubernetes 环境中的 Mosquitto Broker

时间:2021-01-19 07:26:54

标签: kubernetes mosquitto

我正在努力将 Eclipse mosquitto 代理 docker 映像作为 kubernetes 容器使用以下 YAML 配置。但是,我无法为此代理进行任何类型的日志记录以启用一些调试。有没有办法通过“命令”来询问这个 docker 镜像到提供的配置文件而不是使用默认的配置文件?任何人都可以分享一个常用的 YAML 文件来启动具有持久性/卷/日志记录功能的代理吗?

 apiVersion: v1
 kind: Pod
 metadata:
   name: infra-pod
   labels:
     app: infra
 spec:
   containers:
     - name: mosquitto-broker
       image: eclipse-mosquitto
       ports:
         - containerPort: 1883
         - containerPort: 8883

2 个答案:

答案 0 :(得分:2)

您将在下面找到如何为 mosquitto 部署安装卷的示例。在开始试用之前,请访问 kubernetes 文档关于 volumes 以了解更多如何使用它们以及哪个适合您的环境。

        volumeMounts:
        - name: mosquitto
          mountPath: /srv/mqtt/config
        - name: localtime
          mountPath: /etc/localtime
        - name: mosquitto-data
          mountPath: /srv/mqtt/data
        - name: mosquitto-log
          mountPath: /srv/mqtt/log
      volumes:
      - name: mosquitto
        persistentVolumeClaim:
          claimName: mosquitto
      - name: mosquitto-data
        persistentVolumeClaim:
          claimName: mosquitto-data
      - name: mosquitto-log
        persistentVolumeClaim:
          claimName: mosquitto-log
      - name: localtime
        hostPath:
          path: /home/test

为了提供一些自定义配置,您有 configure your pod to use Kubernetes configMap。您在下面所做的是在 Pod 规范的 volumes 部分下添加 ConfigMap 名称。这会将 ConfigMap 数据添加到指定为 volumeMounts.mountPath 的目录中。

      volumeMounts:
      - name: password-file
        mountPath: /.config/mosquitto/auth/password_file.txt
        subPath: password_file.txt
      - name: config-file
        mountPath: /.config/mosquitto/mosquitto.conf
        subPath: mosquitto.conf 
   ----
      volumes:
      - name: config-file
        configMap:
          name: mosquitto-config
      - name: password-file
        configMap:
          name: mosquitto-password        
---

在上面的例子中,使用了另一个名为 subPath 的字段,用于将指定文件挂载到 pod 目录中。这用于避免安装卷和现有目录的顶部。您可以详细了解here

请注意,这些 yaml 仅用于提供信息,并作为如何传递配置和挂载卷的示例。您必须根据需要调整它们。

答案 1 :(得分:0)

非常感谢 Thomas 的详细回复。这些概念确实帮助我让配置文件在 kubernetes 环境中工作。我将主机路径的一个卷安装到我的容器中,配置文件开始工作.. 将在一周内试用 ConfigMaps..

粘贴下面的 YAML 文件使其对我有用:

 apiVersion: v1
 kind: Pod
 metadata:
   name: mqtt-broker
   labels:
     app: ipc
 spec:
   containers:
     - name: mosquitto-broker
       image: eclipse-mosquitto
       ports:
         - containerPort: 1883
         - containerPort: 8883
       volumeMounts:
        - name: mosquitto
          mountPath: "/mosquitto/config"
        - name: mosquitto-data
          mountPath: "/mosquitto/data"
        - name: mosquitto-log
          mountPath: "/mosquitto/log"
   volumes:
      - name: mosquitto
        hostPath:
          path: /mosquitto/config
      - name: mosquitto-data
        hostPath:
          path: /mosquitto/data
      - name: mosquitto-log
        hostPath:
          path: /mosquitto/log
相关问题