Sample Header Ad - 728x90

WSO2 API Manager 4.4.0 – How to Properly Sync APIs Across Multiple All-in-One Pods in Kubernetes?

0 votes
0 answers
31 views
I'm deploying **WSO2 API Manager 4.4.0** on Kubernetes with the goal of scaling horizontally. My current setup is: - 5 replicas of **all-in-one pods**, each running the full WSO2 API Manager stack (Control Plane + Gateway). - Shared **MySQL** instances for both WSO2AM_DB and WSO2_SHARED_DB. - Two **Nginx ingresses**: - am.wso2.com → Control Plane (Publisher, Devportal) - gw.wso2.com → Gateway --- ## 🔥 The Problem APIs created in one pod (via the Publisher) are only deployed to that pod’s internal Gateway. The other 4 pods don’t receive the new APIs. This leads to inconsistent behavior, especially since users hit different pods due to load balancing. --- ## 🧪 What I’ve Tried 1. **DBRetriever-based polling** (seems deprecated method): - Initially configured the [apim.sync_runtime_artifacts.gateway] block with enable = true. - This did **not** sync APIs across pods as expected. 2. **Switched to Event Hub-based sync**: - Added a dedicated **Key Manager/Event Hub pod**. - Updated [apim.event_hub] and related sections (e.g., publish.url_group, event_listening_endpoints). - The **real issue** appears to be **connectivity between Control Plane pods and the Event Hub on port 9611** — the port does not respond, and API deployment events aren't published. --- ## ❓ My Question What is the **correct, working method** to synchronize API artifacts between multiple WSO2 APIM 4.4.0 all-in-one pods on Kubernetes? If you have a working pattern or configuration that **reliably syncs APIs across pods**, I’d really appreciate your insights.
Asked by Arapa (1 rep)
May 5, 2025, 09:14 AM