-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Canary Weighted Consistent Hashing #11830
base: main
Are you sure you want to change the base?
Conversation
This issue is currently awaiting triage. If Ingress contributors determines this is a relevant issue, they will accept it by applying the The Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
PR needs rebase. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: 2339478391 The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Hi @2339478391. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
❌ Deploy Preview for kubernetes-ingress-nginx failed. Why did it fail? →
|
The expectations from the canary feature are mostly being met for the large number of users of canary feature. Adding new features is not being considered on the ingress-controller because the focus is to be secure by default while being compliant to the K8S ingress-api specs. The project is actually deprecating some features as its not a improvement to maintain & support features that impact security, stability & other such deliverables. I don't think the project should implement the changes proposed here. |
This is stale, but we won't close it automatically, just bare in mind the maintainers may be busy with other tasks and will reach your issue ASAP. If you have any question or request to prioritize this, please reach |
The This bot removes
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /remove-lifecycle frozen |
Weighted Consistent Hashing
consider that
1.route 30% requests to canary backends just like what canary-weight did
2.the requests of a single user/device route to primary backends or canary backends randomly, it cause unconsistency
3.we want a single user routes to primary backends or canary backends all the time during the lifecycle
Add two new canary annotations
canary-consistency
it has two option, "header" or "cookie", means
header="userId" value="1" this userId routes to primary backends all the time
header="userId" value="2" this userId routes to canary backends all the time
or
cookie="userId" value="1" this userId routes to primary backends all the time
cookie="userId" value="2" this userId routes to canary backends all the time
canary-hash-seed
it's optional, it makes sure two experiments requests are different, the different seeds can result different hashcode
three old canary annotations are reused
canary-weight
canary-by-header
cookie
Compatibility
won't harm other canary strategies
but if canary-consistency is configured, other strategies won't work