我正在努力将 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
答案 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