Skip to content
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

[Features]Node Topology awareness inside Database Application #8463

Open
lancelot1989 opened this issue Nov 15, 2024 · 3 comments
Open

[Features]Node Topology awareness inside Database Application #8463

lancelot1989 opened this issue Nov 15, 2024 · 3 comments
Assignees
Labels
area/user-interaction documentation kind/feature New feature proposed-feature Features proposed by internal or external users Stale

Comments

@lancelot1989
Copy link
Contributor

Some kind of databases have the ability to distribute data across different nodes according to the topology, like kafka’s broker.rack and replica.selector.class.

Currently, k8s's downward api cannot support node label(kubernetes/kubernetes#40610), so there is no official way to aware Node Topology inside Pod.

What if develop an api on kbagent to expose the Node Topology, and the startup scripts in addon can call this api and get Node Topology?

@shanshanying
Copy link
Contributor

Hi @lancelot1989

As we discussed early this week, using KB-Agent to get Node Topology is not a good way (needs extra privileges and increates api-server burder). One alternative solutions in my mind is use postprovision action api mpd.spec.lifecycleActions.postProvision.

@shanshanying shanshanying added the proposed-feature Features proposed by internal or external users label Nov 20, 2024
@lancelot1989
Copy link
Contributor Author

Hi @lancelot1989

As we discussed early this week, using KB-Agent to get Node Topology is not a good way (needs extra privileges and increates api-server burder). One alternative solutions in my mind is use postprovision action api mpd.spec.lifecycleActions.postProvision.

Will postProvision be heavy too? As postProvision runs after Pods already running, some kind of engine's topology(like kafka) is set in properties file which can not be dynamically changed, maybe postProvision can not handle this situation. And as times goes on, Pod maybe deleted or evicted as Node Problems, Pod will be rescheduled to another node, can postProvition trigger with Pod rescheduled?

As mentioned above, is there a way we using a mutatingwebhook to hijack the /bind request, putting node's topology's json into pod's specific label, finally putting this pod label to downward api?

Copy link

This issue has been marked as stale because it has been open for 30 days with no activity

@github-actions github-actions bot added the Stale label Dec 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/user-interaction documentation kind/feature New feature proposed-feature Features proposed by internal or external users Stale
Projects
None yet
Development

No branches or pull requests

2 participants