-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
Controller: Use Protocol Buffers for API access. #12467
base: main
Are you sure you want to change the base?
Conversation
This issue is currently awaiting triage. If Ingress contributors determines this is a relevant issue, they will accept it by applying the The 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-sigs/prow repository. |
✅ Deploy Preview for kubernetes-ingress-nginx canceled.
|
/ok-to-test @rikatz or @tao12345666333 can you review this one? |
/test pre-ingress-nginx-codegen |
/test pre-ingress-nginx-codegen |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: tosi3k The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@Gacko PTAL once again :) |
What this PR does / why we need it:
If not specified explicitly, JSON encoding is used by default when talking to kube-apiserver.
For core K8s API objects like Pods, Nodes, etc., we can use protobuf encoding which reduces CPU consumption related to (de)serialization, reduces overall latency of the API call, reduces memory footprint, reduces the amount of work performed by the GC and results in quicker propagation of objects to event handlers of shared informers.
For CRDs, however, we still have to stick to JSON since they do not support protobuf encoding.
Standard system components of K8s default their serialization method to protobuf for some time already:
kube-scheduler
: linkkubelet
: linkkube-proxy
: linkkube-controller-manager
: link and method's contentsTypes of changes
Which issue/s this PR fixes
No issue is opened for that.
How Has This Been Tested?
Unit tests.
Checklist: