http-add-on
http-add-on copied to clipboard
Add service mesh / GAMMA project based scaling
The interceptor works with the scaler to provide KEDA with the HTTP queue size, which KEDA in turn uses to scale the app. That arrangement lets a user submit a single HTTPScaledObject
and have the operator create all the moving pieces required (interceptor, scaler, etc...). We should, however, support service meshes, or really any HTTP server that can (a) route traffic from outside the cluster into a pod (the app) and (b) emit SMI-compatible metrics.
Note:
kedacore/keda
has discussed consuming SMI metrics as well in https://github.com/kedacore/keda/issues/615. This is a specific use case for consuming those metrics, but if KEDA core doesn't support SMI when we implement SMI support in the external scaler, it could be a "test drive" for building the same functionality into core
Service meshes we should consider supporting:
- Gloo
- LinkerD
- Istio
- Kong
- Kuma
Others??
We should only support SMI spec which is an open standard, the others are out of luck ;)
Ah yes, you're right. I just meant that we should look into those service meshes (I have no idea which ones support SMI at the moment) and, if they do, test our integration against them, include them in our docs, and so forth...
No problem! You can see all supported service meshes on https://smi-spec.io/
AWS App Mesh
As part of this work, we need to add documentation - including updating the architecture diagram - explaining how service meshes integrate with the HTTP add on
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.
Hi there, I am curious about the status of this ticket. The roadmap seems to indicate that it's still in the works, but looks like no one is assigned.
As it stands, is it possible at all to use the http add-on with in a cluster that has service mesh?
If traffic goes through it, yes. But there is no integration
But there is no integration
What does that mean? We want to use this for a specific usecase - we have dev deployments that we want to scale to 0 when there is no traffic, and activate and scale back up to previous value when traffic starts again (usually 1 pod), but we also use a service mesh (Istio) and I was wondering how the traffic would flow in that case since envoy already exists as a proxy.
Would this work in current form?
Maybe also consider https://traefik.io/traefik-mesh/ ?
Does it have a direct integration or built-in support? Ripping up a fully functional service mesh and replacing it with a new one is a very costly endeavor.
The idea is that the used service mesh technology does not have to be changed and we just plug in.
Given the range of service meshes, we should rely on GAMMA
oh, sorry, a little confuse from my side, I think the traefik mesh compatible with GAMMA but turn out it only follow SMI (but I was thinking that SMI and GAMMA somewhat closed to each other also but it is not).
Did someone get this working in the current form in service mesh? We are using Istio and I tried deploying the addon with the side-car injection enabled. The controller runs without problems but external scaler and interceptor pods do not come up due to failing readiness and liveness checks.