openyurt icon indicating copy to clipboard operation
openyurt copied to clipboard

[feature request]`NodePool Governance Capability`: Add component `pool-spirit`

Open Peeknut opened this issue 2 years ago • 6 comments

What would you like to be added: pool-spirit uses apiserver and etcd in a pod mode, and etcd needs to use memory storage. Its life cycle is controlled by spirit-controller, but deployment requires users to manually apply pool-spirit's CR. So the following work needs to be done:

Before implementation, the following tests are required:

  • When there are many resources in the NodePool (500 Nodes, 1k Pods), whether etcd, which stores resources in memory, can work normally.
  • When there are many resources in the NodePool (500 Nodes, 1k Pods), whether the node's leader election through etcd can work normally.

You can try to build an etcd with data stored in memory in the following ways: https://github.com/kubernetes-sigs/cluster-api-provider-nested/blob/main/virtualcluster/doc/demo.md

If there is a problem with the test, please comment and discuss. If there is no problem with the test, in order to implement pool-spirit, the following work needs to be done:

  • Design pool-spirit CRD.
  • When pool-spirit starts, it is required to prepare the CRD NodePool, clusterrolebinding associated with system:nodes group and admin clusterrole in the kube-apiserver. This ensures that YurtHub can successfully write to etcd using node client certificate.
  • Provide the mirror of pool-spirit and related documents for deploying pool-spirit.

Notes: For details, please refer to the proposal: https://github.com/openyurtio/openyurt/pull/772

Why is this needed: As mentioned in the proposal(https://github.com/openyurtio/openyurt/pull/772), pool-spirit provides operation and maintenance functions and autonomous functions for NodePool. It is the core component.

others /kind feature

Peeknut avatar Mar 10 '22 07:03 Peeknut

/assign donychen1134

donychen1134 avatar Mar 23 '22 03:03 donychen1134

"You can try to build an etcd with data stored in memory in the following ways: https://github.com/kubernetes-sigs/cluster-api-provider-nested/blob/main/virtualcluster/doc/demo.md" Whether this doc link is wrong? I can't find any "build an etcd with data stored in memory" information in the web page. Maybe I can use the follow way to let etcd data store in memory:

  volumes:
  - emptyDir:
      medium: Memory
    name: etcd-data

donychen1134 avatar Apr 08 '22 12:04 donychen1134

"You can try to build an etcd with data stored in memory in the following ways: https://github.com/kubernetes-sigs/cluster-api-provider-nested/blob/main/virtualcluster/doc/demo.md" Whether this doc link is wrong? I can't find any "build an etcd with data stored in memory" information in the web page. Maybe I can use the follow way to let etcd data store in memory:

  volumes:
  - emptyDir:
      medium: Memory
    name: etcd-data

@donychen1134 yes, use emptyDir volume for etcd data.

rambohe-ch avatar Apr 10 '22 03:04 rambohe-ch

progress update:

  1. Use opensource apiserver and etcd image to generate pool-coordinator yaml file. Done
  2. Test the basic apiserver CRUD. Done
  3. Performance test. Doing

donychen1134 avatar May 24 '22 14:05 donychen1134

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Aug 30 '22 23:08 stale[bot]

/label pinned

rambohe-ch avatar Sep 01 '22 03:09 rambohe-ch

/close

donychen1134 avatar Jan 19 '23 03:01 donychen1134

@donychen1134: You can't close an active issue/PR unless you authored it or you are a collaborator.

In response to this:

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

openyurt-bot avatar Jan 19 '23 03:01 openyurt-bot

/close

rambohe-ch avatar Jan 19 '23 08:01 rambohe-ch

@rambohe-ch: Closing this issue.

In response to this:

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

openyurt-bot avatar Jan 19 '23 08:01 openyurt-bot