-
Notifications
You must be signed in to change notification settings - Fork 40k
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
Admission control proposal #2501
Admission control proposal #2501
Conversation
|
||
1. Quota enforcement of allocated desired usage | ||
2. Pod black-lister to restrict running specific images on the cluster | ||
3. Privileged container checker |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd been considering the ability to run a privileged container to be part of Authorization.
I'm concerned that if quota charges are not updated synchronously with resource creation/deletion, that users will have a bad experience, and/or it will be possible to game the system. For that to work, one of the following needs to happen, I think:
For example, it can't really say yes or no to a request until it has seen whether the previous request completed. For the first option, I think that the admission controller has to happen after validation. In your proposal, it appears to happen before validation. For the second option, I think it will be much easier to make the checking synchronous if the admission controller is part of the apiserver process, as opposed to being a separate entity. So, I think we keep our options open more if we initially put admission control into the apiserver process, and only make it a separate service when we are sure we need to. |
My concern is we may all want to quota different things. I can submit a follow on soon for what we discussed potentially doing for quota enforcement of desired usage. In practice, I think you always need a control loop to reconcile a run once terminated pod as no longer counting against your usage. Let me augmented this PR with an additional doc on a potential quota system that would be built on top tomorrow. Interested in your perspective. In general, I want to crisp up the difference between policy and admission control so your thoughts prior were really useful. Sent from my iPhone
|
I also agree that validation should occur prior to admission control. Let me update to reflect that. A lot of your feedback is centered on their being only one admission control call-out, which I may agree to simplify if I can think on it some more. As for deletes, I think it's important in a quota system, but I am not sure you can guarantee a delete occurred without some transactional rollback as there is no guarantee the storage actually did the delete after admission control viewed it. As a result, I looked at this as requiring some reconciliation loop to update the allocated desired usage after a delete. We have a history of trying to support rollbacks on pending operation queues and we are trying to avoid it. Either way, will add more ideas on a quota system soon. Sent from my iPhone
|
@erictune - discussed your feedback with some members of our team. RE: priv containers, and host dir RE: Compile in or call out via REST API RE: Request Validation RE: Quota charges of synchronous updates Other topics: Quality of Service: for me, admission control is a great vehicle if you want as a provider to offer some level of quality of service gatekeeper. So for example, policy says you have the right to run a priv container, but the admission controller sees that all of the dedicated nodes for your organization are running at capacity so it may choose to not accept the request because it can gleam it may never be able to schedule the pod in a timely manner. So as an operator I do not want to remove your right to run a priv container, but I want to not accept new ones either type of thing. It's this quality of service angle where I think its fair to say you would have some overlap between policy and admission control. Admittedly, that is an advanced use case. Have you guys thought about quality of service type issues wrt to Admission Control decision making? |
RE: Request Validation
My strategy has been to wait until we really need body-dependent policies before implementing them. RE: Quota charges of synchronous updates
Other topics: Re: other comments not specifically addressed above: |
Can one of the admins verify this patch? |
1634e1c
to
a26b0f2
Compare
Prereqs #2977 |
a26b0f2
to
0cabf0b
Compare
@erictune - I have vastly simplified the proposal, and limited it to what I view as the bare minimum needed to support admission control for our downstream requirements. I have an implementation PR that I will submit shortly that has this working. Please provide feedback, and we could look to evolve this further over time. |
I am starting to look at how I can support some features that will require admission control, so wanted to get high-level agreement on the strategy so I can look to work on some of the more specific use cases we want to use admission control to achieve.
Feedback appreciated.