Closed donkeywon closed 2 weeks ago
使用当前的现状举个例子
当前k8s集群,在karmada中的name=cluster-a
定义的PropagationPolicy
placement:
clusterAffinity:
clusterNames:
- cluster-a
有一个CR,通过上面定义的pp被分发到了cluster-a
目前已经尝试的操作是
查阅后发现是karmada针对每个cr,会创建一个对应目的cluster的work,只要这个work被删掉,目的cluster中的cr也会被删掉。 在做第4步时,原先cr在cluster-a下的work会被karmada删掉,会增加一个针对cluster-b的work,所以会出现第5步的情况。
问题1:是否可以针对work做一些操作,在work被karmada删掉时不会删掉成员集群中的cr? 问题2:是否有其他的可行思路?
在Karmada中,集群的名称是唯一的,在集群声明周期内,也是不可以修改名称的。因此,我理解要想达到你描述的目的,可能需要使用比较hack的方式。
问题1:是否可以针对work做一些操作,在work被karmada删掉时不会删掉成员集群中的cr?
针对这一点,我觉得你可以通过将集群上的资源的label中,由karmada管理的标签去掉,这样其实就是将该资源脱离了Karmada的控制,当按照你之前的步骤变更集群名称之后,你可以再使用PropagationPoliy中的覆盖策略,将集群上原本的资源交由Karmada控制。
在Karmada中,集群的名称是唯一的,在集群声明周期内,也是不可以修改名称的。因此,我理解要想达到你描述的目的,可能需要使用比较hack的方式。
问题1:是否可以针对work做一些操作,在work被karmada删掉时不会删掉成员集群中的cr?
针对这一点,我觉得你可以通过将集群上的资源的label中,由karmada管理的标签去掉,这样其实就是将该资源脱离了Karmada的控制,当按照你之前的步骤变更集群名称之后,你可以再使用PropagationPoliy中的覆盖策略,将集群上原本的资源交由Karmada控制。
你的意思是定义一个OverridePolicy,然后在PropagationPolicy中的dependentOverrides属性中关联OverridePolicy么?
不是的,我是指先将集群中由Karmada分发的、与Karmada相关的标签删除掉,这样集群中的资源将不再受Karmada控制,然后进行集群名称的变更,最后在PropagationPolicy中修改集群名称,并指定覆盖策略.spec.conflictResolution
。
@XiShanYongYe-Chang 半天在crd里找不到这个属性,从1.7版本才有这个字段的,那我先升级下看看
抱歉,忘记版本信息了,可以试着用一下这个字段提供的特性能力。
As a lack of activity, let's close this first, feel free to reopen it if you still need it. /close
@XiShanYongYe-Chang: Closing this issue.
Please provide an in-depth description of the question you have: 目前使用场景:仅使用karmada的PropagationPolicy分发cr到成员集群 想达成的目的:因为一些历史原因,需要重命名karmada中的cluster name
What do you think about this question?: 查阅了karmada的文档和issue,没有找到相关的解决方法,只有一个issue是类似的目的,但是解决方法不太适合我现在的场景
Environment: