Skip to content

Commit d6b9481

Browse files
authored
Merge pull request #50852 from benjaminapetersen/benjaminapetersen/d/kep_2535_alpha_blog_update
KEP-2535: add publish time, minor nits
2 parents 0206430 + b29e075 commit d6b9481

File tree

1 file changed

+3
-4
lines changed
  • content/en/blog/_posts/2025-05-12-ensure-secret-pulled-images

1 file changed

+3
-4
lines changed

content/en/blog/_posts/2025-05-12-ensure-secret-pulled-images/index.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
---
22
layout: blog
33
title: "Kubernetes v1.33: Image Pull Policy the way you always thought it worked!"
4-
date: 2025-05-12
5-
draft: true
4+
date: 2025-05-12T10:30:00-08:00
65
slug: kubernetes-v1-33-ensure-secret-pulled-images-alpha
76
author: >
87
[Ben Petersen](https://github.com/benjaminapetersen) (Microsoft),
@@ -32,7 +31,7 @@ and it will pull *container image Foo* from the registry. This is the intended
3231
behavior.
3332

3433
But now things get curious. If *Pod B* in *Namespace Y* happens to also be scheduled to *Node 1*, unexpected (and potentially insecure) things happen. *Pod B* may reference the same private image, specifying the `IfNotPresent` image pull policy. *Pod B* does not reference *Secret 1*
35-
(or in our case, any secret) in it's `imagePullSecrets`. When the Kubelet tries to run the pod, it honors the `IfNotPresent` policy. The Kubelet sees that the *image Foo* is already present locally, and will provide *image Foo* to *Pod B*. *Pod B* gets to run the image even though it did not provide credentials authorizing it to pull the image in the first place.
34+
(or in our case, any secret) in its `imagePullSecrets`. When the Kubelet tries to run the pod, it honors the `IfNotPresent` policy. The Kubelet sees that the *image Foo* is already present locally, and will provide *image Foo* to *Pod B*. *Pod B* gets to run the image even though it did not provide credentials authorizing it to pull the image in the first place.
3635

3736
{{< figure
3837
src="ensure_secret_image_pulls.svg"
@@ -47,7 +46,7 @@ authorized to pull the image in the first place.
4746

4847
## IfNotPresent, but only if I am supposed to have it
4948

50-
In Kubernetes v1.33, we - SIG Auth and SIG Node - are finally addressing this (really old) problem and getting the verification right! The basic expected behavior is not changed. If
49+
In Kubernetes v1.33, we - SIG Auth and SIG Node - have finally started to address this (really old) problem and getting the verification right! The basic expected behavior is not changed. If
5150
an image is not present, the Kubelet will attempt to pull the image. The credentials each pod supplies will be utilized for this task. This matches behavior prior to 1.33.
5251

5352
If the image is present, then the behavior of the Kubelet changes. The Kubelet will now

0 commit comments

Comments
 (0)