-
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
Node images doesn't expose digests, which means locked pods can't get scheduling benefits #23917
Comments
@kubernetes/rh-cluster-infra this means we get no benefit in practice from the current scheduling setup. |
I think there are three changes needed:
|
With Docker 1.10 and beyond, my understanding is that the layer-is-image behavior is no longer available, and you can only run images. Maybe that isn't in 1.10 yet (I haven't checked), but if it isn't, it will be eventually. I'm not sure exactly what you're getting at with terminal image names. Right now the node status contains the output from As for 3, the first v2 image manifest format includes the image repository name and tag, so matching just by |
For terminal images I meant images that are only ever pulled by tag - if I On Wed, Apr 6, 2016 at 11:22 AM, Andy Goldstein notifications@github.com
|
You can see images pulled exclusively by digest using |
Yes, those are the ones that need to be returned by the node. |
Roger. So I would say start by including |
The digest mapping still matters, since a pull wouldn't bring down new On Wed, Apr 6, 2016 at 11:35 AM, Andy Goldstein notifications@github.com
|
If you have a node 1 with |
I would agree that a/b should be higher priority, but I would still want x/y to be a match. Wasn't sure when you said strict you meant "exclude x/y" which I think is too aggressive. |
That works for me - check strict first, relaxed second. |
@smarterclayton the scheduler priority function compares container.Image to the names of the images in the node's status. I'm hesitant to put any logic to parse |
I think the node should be abstracting that On May 3, 2016, at 1:39 PM, Andy Goldstein notifications@github.com wrote: @smarterclayton https://github.com/smarterclayton the scheduler priority — |
Are you suggesting that the |
Technically the digest is a name. On May 3, 2016, at 2:02 PM, Andy Goldstein notifications@github.com wrote: Are you suggesting that the ContainerImage that is in the node status have — |
True. Here are the options I can think of:
My PR #25088 currently implements option 1 |
Digest name for Docker runtimes is a valid image target, so 1 or 2 seem ok We can potentially do a 1b option later - have the scheduler be a bit more On Tue, May 3, 2016 at 3:46 PM, Andy Goldstein notifications@github.com
|
I'm going to mark the PR as a fix for this issue if that's ok? |
I'm fine with it. On Tue, May 3, 2016 at 4:36 PM, Andy Goldstein notifications@github.com
|
Automatic merge from submit-queue Handle image digests in node status and image GC Start including Docker image digests in the node status and consider image digests during image garbage collection. @kubernetes/rh-cluster-infra @kubernetes/sig-node @smarterclayton Fixes #23917
Anyone who wants reproducible deployments can use image digests/content-addressable-hash (image@sha256:abceouth). In Docker 1.10, all images locally will be identified by the CAH as well as their tags. In OpenShift, 80-90% of pods use the digest because we have the machinery to resolve to digest up front for guaranteed exact deployment.
The current implementation of node images does not expose image digests, so creating a pod that is using the digest gets no scheduling benefit. The node should return the list of digests for matching (if two images have different tags but the same digest, they are the same image under the covers and the scheduler should prefer putting a pod referencing that digest on the same node).
The text was updated successfully, but these errors were encountered: