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