ActiveMQ
ActiveMQ
Purpose
Apache ActiveMQ (Classic) — a message broker supporting JMS/OpenWire, AMQP, STOMP, and MQTT — running as a single-replica Deployment in the default namespace of the k3s cluster.
Deployment
| Item | Value |
|---|---|
| Image | apache/activemq-classic:latest |
| Namespace | default |
| Replicas | 1 (strategy: Recreate) |
| Service type | LoadBalancer (MetalLB, 192.168.1.34) |
| Storage | 2 PVCs, local-path storage class |
| Ingress | Traefik IngressRoute, TLS via shared local-example-com-tls cert |
The Deployment has reloader.stakater.com/auto: "true" set so config/secret changes trigger a pod restart automatically (see the Reloader post).
Ports
| Name | Container Port | Protocol | Purpose |
|---|---|---|---|
web | 8161 | TCP | Admin web console |
openwire | 61616 | TCP | JMS / OpenWire |
amqp | 5672 | TCP | AMQP |
stomp | 61613 | TCP | STOMP |
mqtt | 1883 → 1884 (service) | TCP | MQTT |
The Service remaps MQTT to port 1884 externally (port: 1884 → targetPort: 1883) since port 1883 is already used by the separate Mosquitto MQTT broker on this cluster.
Storage
An initContainer (seed-conf) copies the image’s default /opt/apache-activemq/conf into the activemq-conf PVC on first boot only, if the volume is empty — this lets the broker config persist across pod restarts/reschedules while still shipping with sane defaults.
| PVC | Size | Mount |
|---|---|---|
activemq-data | 5Gi | /opt/apache-activemq/data |
activemq-conf | 256Mi | /opt/apache-activemq/conf |
Ingress
Routed via Traefik IngressRoute at:
activemq.prod-k3s.iot-proxmox.net(withdefault-headersmiddleware)www.activemq.prod-k3s.iot-proxmox.net
Both route to the web (admin console) port, 8161.
Resources
| Requests | Limits | |
|---|---|---|
| CPU | 100m | 1 |
| Memory | 384Mi | 768Mi |