Comments (4)
@stevenpall thanks for explaining your use-case. I think it will be an useful feature to have. PRs are welcome. If you are interested, we can discuss the design. I think it will be similar to passing an array of services with weights.
As far as the original question though, for my own knowledge and for anyone searching for this answer later, does "cross namespace service support" simply mean that one can route to different namespaces in the same config?
Yes. If you provide the servicename as svc_name.ns_name
, then service name will resolved accordingly. This allows you to use ingress from one namespace and service from another namespace.
from voyager.
@stevenpall , currently it is not possible to assign weight directly. This will actually require changes in the YAML format so that multiple services can be defined for a single endpoint.
But if you are looking to use the canary deployment
model, you might be interested in https://kubernetes.io/docs/user-guide/managing-deployments/#canary-deployments . This will work with voyager.
Let me know if you have more questions.
from voyager.
Thanks for the info. I have looked at the canary deployment model, though two issues with it stand out to me for this use case.
The first is that services would not be namespaced, so service discovery becomes more complicated (i.e. having to refer to a service as my-app-feature
vs. just my-app
).
The other issue is that the percentage of traffic a canary deployment receives is dependant upon the number of replicas of the service in question. This number could change dynamically if horizontal pod autoscaling is enabled, so it would be difficult to use the percentage of traffic going to the canary deployment as a baseline for performance testing. By contrast, setting a weight of, for example, 1 for a backend in the HAProxy config vs. 100 for the other backends guarantees the canary service will always receive 1% of traffic. Of course, 1% of traffic would not be a constant number of req/s over time, but it seems like a more stable value than the alternative.
As far as the original question though, for my own knowledge and for anyone searching for this answer later, does "cross namespace service support" simply mean that one can route to different namespaces in the same config?
Thanks!
from voyager.
@stevenpall , we have added option to set weights to a service using annotation ingress.appscode.com/backend.weight
. This will give you more fine grain control over backends of a ingress. All the backends must be in the same namespace.
Cross namespace support will not be added, as that can't be supported without breaking the current. YAML format.
This will be out with 1.5.5 release in next week.
from voyager.
Related Issues (20)
- ImagePullSecrets gone from ServiceAccount spec HOT 1
- Development guide is out of date
- Add support for LBType LoadBalancer for Yandex Cloud Provider
- The Server Could not find the requested Resource HOT 3
- Deprecation Alert: Cloud_Provider: Openstack to external HOT 1
- Cannot deploy Ingress Server anymore on AKS cluster on version 1.18.8 HOT 2
- Voyager unable to update haproxy.cfg - must have at most 1048576 characters HOT 1
- extensions/v1beta1 Ingress is deprecated HOT 1
- Upgrade from v12.0.0-rc.1 to v12.0.0.0 return error
- Prometheus Monitoring causes panic "invalid memory address or nil pointer dereference" HOT 7
- Deployment and Service not being creating HOT 1
- Rate limiting return 'Forbidden' (403) instead of 'Too Many Requests' (429)
- Unable to use Voyager sticky session (chart version 12.0.0/app version 12.0.0) for jnlp applets HOT 2
- creating voyager ingress on k8s version 1.20 is failing HOT 8
- Is it possible to create UDP rule for AWS load balancers?
- stats pod not being created on EKS cluster 1.19 with v12.0.0 HOT 2
- kubelet Error: ImagePullBackOff HOT 3
- Does Voyager support circuit breaker pattern and api response encryption?
- kubelet Error: ImagePullBackOff HOT 2
- Skip running preview-website workflow in forks with credentials
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from voyager.