-
Notifications
You must be signed in to change notification settings - Fork 69
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
Proposal: support fine-grained Canary Service manipulation #241
Comments
can we workaround the problem somehow, for example is it possible to specify another label (other than version=base) that is not conflict with your existing service selector label ? |
Yes. It could be done. But in a large cluster, adding an additional label to Pod and also service selector are not easy. It has to be done generally in two steps,
We have > 1000 Deployments in the production cluster, so it would take a long-term to reach eventual consistency. |
it is not necessary to change label of the exiting deployment, just change PatchPodTemplateMetadata field in the kruise-rollout. |
We've already use The following is what we want as hinted by your last reply, But to achieve that, we have to add a new label ,for example |
if your existing stable service and deployment is configure with the following selector
just configure the rollout PatchPodTemplateMetadata to patch kruise-version=canary, then the canary pod will be
and the selector of copied canary service will be:
|
I agree that it could work in general. But the problem is label app and version have already been extensively used in our system. For example,
So it may not be suitable now to use |
如果 canary svc的selector 只保留 pod-template-hash 这一个就行了,不复制其他label selector,是不是也能解决问题? |
Hash值的计算会不会有冲突? |
背景
在当前的Rollouts实现中,创建Canary Service的动作是直接复制了Stable Service并且创建/覆盖了
RevisionLabelKey
,但在一些场景下存在局限性:在实际使用过程中,PatchPodTemplateMetadata可以被用来向Canary Pods增加Labels和Annotations。比如我们可以增加
version=canary
这一label,来与Stable Pods进行区分(假设是version=base
)。如果Stable Service上的selector已经存在version=base
,那么在复制以后就无法选中灰度Pods,如下图所示方案
在
CanaryStrategy
结构体中,增加一个字段CanaryServiceOperations
来标识对Canary Service的配置操作,The text was updated successfully, but these errors were encountered: