openyurt
openyurt copied to clipboard
[feature request]`NodePool Governance Capability`: Add component `pool-spirit`
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
/assign 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
"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.
progress update:
- Use opensource apiserver and etcd image to generate pool-coordinator yaml file. Done
- Test the basic apiserver CRUD. Done
- Performance test. Doing
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.
/label pinned
/close
@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.
/close
@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.