karpor icon indicating copy to clipboard operation
karpor copied to clipboard

Chore: Improve the high availability level in large-scale cluster deployment.

Open fanfan-yu opened this issue 1 year ago • 4 comments

What would you like to be added?

  1. Split Syncer as Agent in user cluster, and support two modes: 1.1 Agent in user cluster watch hub cluster custom resources like syncrule, and sync info into es directly. In this mode, hub cluster will not invade the user cluster. 1.2 Syncer in hub cluster will dispatch crds and custom resources into user cluster, and Agent in user cluster watch self apiserver. in this mode, Agent completely self-looping within the user cluster, and sre could deploy Agent independently.

  2. Support more kubernetes versions.

Why is this needed?

  1. Syncer takes up too much memory resource as the number of clusters increases, so a high availability solution is urgently needed.

  2. Better compatibility.

fanfan-yu avatar Feb 09 '25 08:02 fanfan-yu

Karpor still needs too much memory in single large-scale cluster. It is the best way that Karpor can share memory with other operators deployed in user cluster.

fanfan-yu avatar Feb 25 '25 13:02 fanfan-yu

High availability solutions may need to be considered in conjunction with projects such as Kuperator or OpenKruise

elliotxx avatar Mar 01 '25 14:03 elliotxx

I am curious, why does Syncer need to support these two modes and in what scenarios should they be used?

jinjiaKarl avatar Mar 20 '25 22:03 jinjiaKarl

Sorry, I am so busy recently and reply slowly for you.

Is push mode, hub cluster need dispatch resources to user cluster now (or even create agent directly in the future). This solution is friendly for users because users do not need focus on the agent. However, hub cluster need write permissions of user cluster which is not supportted for some scences.

In pull mode, agent is deployed by user cluster sre and watches hub cluster apiserver, hub cluster do not need write permission of user cluster.

fanfan-yu avatar Mar 23 '25 12:03 fanfan-yu