karmada icon indicating copy to clipboard operation
karmada copied to clipboard

[Question] Deploying resources that need inter-cluster communitation

Open bsbds opened this issue 9 months ago • 5 comments

Please provide an in-depth description of the question you have:

Hi, I have a question about deploying an resource using karmada that needs inter-cluster communitation.

  • What I'm trying to do We have a distributed key-value store cluster, similar to etcd. And we currently use an operator to manage it and want to extend the deployment to multiple clusters using Karmada, distributing cluster nodes across each karmada member cluster.

  • The issue The kv store node pods needs to communicate with each other. For deploy via submariner, the operator need to determine dns names of pods across karmada member clusters during reconciliation. More specifically, the operator need the information such as the cluster id and the number of node replicas for each of the karmada member cluster.

However, I have been unable to find a suitable method to pass these informations to member clusters. As these details are defined in PropagationPolicy and used only in Karmada control plane.

What do you think about this question?:

I tried to propagate ResourceBinding CR in Karmada api server to member clusters so that the operator can get the information it needs. But it seems Karmada currently forbids this operation in SkippedResourceConfig.

Does Karmada have some standard support for this kind of configuration? Or are there some alternative solutions? Thanks.

Environment:

  • Karmada version: latest
  • Kubernetes version: v1.27.3
  • Others:

bsbds avatar Sep 19 '23 09:09 bsbds

cc @calvin0327 @RainbowMango

bsbds avatar Sep 22 '23 07:09 bsbds

Seems this is the case that split Pods managed by a StatefulSet to multi-clusters. Is that the case?

I tried to propagate ResourceBinding CR in Karmada api server to member clusters so that the operator can get the information it needs. But it seems Karmada currently forbids this operation in SkippedResourceConfig.

Yeah, the ResourceBinding is a kind of internal resource, which is skipped from propagating by default. Let's continue to talk about your use case and see how we can help.

By the way, I might be slow-respond recently due to KubeCon China stuff. If possible, I suggest having a chat at Karmada community meeting(feel free to add an item to the agenda). Sure, discussing it here would be fine as well.

RainbowMango avatar Sep 22 '23 08:09 RainbowMango

Seems this is the case that split Pods managed by a StatefulSet to multi-clusters. Is that the case?

Exactly.

Let me add more information here, This is a question/feature request for project of Xline , Xline is a distributed KV storage engine for multi-cluster, so it will run with a StatefulSet to multi-clusters.

A natural idea is that karmada distributes the scheduling results of multiple clusters to member clusters.

And Other idea is to obtain the corresponding scheduling results from karamda api after scheduling statefulset to multiple clusters, and distribute them to member clusters.

image

image

Also want to invite @chaunceyjiang for this issue.

liangyuanpeng avatar Sep 25 '23 09:09 liangyuanpeng

May related: https://github.com/karmada-io/karmada/pull/3372

liangyuanpeng avatar Sep 25 '23 10:09 liangyuanpeng

@bsbds as we talked at the community meeting, there are several challenges we need to figure out, such as

  • How to split replicas of a StatefulSet into multiple clusters?
  • How to let each replica discover and connect to the others?
  • maybe more

But I'd say it's an interesting case for Karmada. We can continue the discussion here. Thanks.

RainbowMango avatar Oct 13 '23 09:10 RainbowMango