![]() Automatic merge from submit-queue Reuse fields and labels This should significantly reduce memory allocations in apiserver in large cluster. Explanation: - every kubelet is refreshing watch every 5-10 minutes (this generally is not causing relist - it just renews watch) - that means, in 5000-node cluster, we are issuing ~10 watches per second - since we don't have "watch heartbets", the watch is issued from previously received resourceVersion - to make some assumption, let's assume pods are evenly spread across pods, and writes for them are evenly spread - that means, that a given kubelet is interested in 1 per 5000 pod changes - with that assumption, each watch, has to process 2500 (on average) previous watch events - for each of such even, we are currently computing fields. This PR is fixing this problem. |
||
---|---|---|
.. | ||
rest | ||
server | ||
apiserver.go | ||
README.md |
API Server
This is a work in progress example for an API Server. We are working on isolating the generic api server code from kubernetes specific API objects. Some relevant issues:
- https://github.com/kubernetes/kubernetes/issues/17412
- https://github.com/kubernetes/kubernetes/issues/2742
- https://github.com/kubernetes/kubernetes/issues/13541
This code here is to examplify what it takes to write your own API server.
To start this example api server, run:
$ go run examples/apiserver/server/main.go