You finally got Microk8s running light and fast on your edge nodes. Then you tried adding Apache Pulsar, and things started to feel… heavy. Stateful sets, service accounts, secrets everywhere. It is the moment every developer realizes that “lightweight Kubernetes” can quickly become heavyweight when persistent messaging enters the chat.
Microk8s gives you a compact Kubernetes ideal for local or edge testing, yet it still retains the power to deploy complex workloads. Apache Pulsar gives you event streaming and pub-sub messaging that can scale like crazy. Together, Microk8s Pulsar can deliver distributed messaging at the edge or in isolated lab environments without requiring a full-blown cluster. The key is wiring security and state management right from the start.
A clean integration starts with identity. Use Kubernetes RBAC to define who can access Pulsar’s brokers and topics. Then back those rules with your existing OIDC provider such as Okta or Keycloak. This binds Pulsar’s tenant model directly to your identity layer instead of spawning random credentials. Pulsar’s proxy can sit inside a dedicated Microk8s add-on, routing traffic through a single authenticated entry point.
Secrets and storage follow. Pulsar needs ZooKeeper or BookKeeper for metadata and ledger data, but Microk8s makes StatefulSets easier to manage using hostpath or native storage classes. Keep data local for testing or back it with NFS for shared durability. For production-like setups, isolate namespaces so each Pulsar tenant maps cleanly to a Kubernetes namespace with its own policies.
If something feels slow, it usually traces back to certificate churn or mismanaged topic retention. Automate certificate rotation with cert-manager and review retention policies directly in Pulsar’s admin CLI. That alone prevents the “why is my disk full” moment that haunts early MQTT or Kafka adopters.