-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Sidecar Containers #753
Comments
@enisoc @dchen1107 @fejta @thockin @kow3ns @derekwaynecarr, opened this tracking issue so that we can discuss. |
/assign |
@derekwaynecarr I've done some scoping out of the kubelet changes required for next week's sig-node meeting, I believe that changes are only needed in the In In Let me know if you want me to investigate any further. |
@kow3ns The discussion makes more sense to me if maybe we can define a full description of containers sequence in Pod spec (sig-app), and how to handle the sequence in kubelet for start, restart and cascading consideration (sig-node). Let's catch the Feb 5 sig-node meeting to give more inputs. |
The proposal says that sidecars only run after the init containers run. But what if the use-case requires the sidecar to run while/before the init containers run. For example, if you'd like route the pod's traffic through a proxy running as a sidecar (as in Istio), you probably want that proxy to be in place while the init containers run in case the init container itself does network calls. |
@luksa I think there's the possibility of looking at having sidecars that run in init phase at some point but currently the proposal is not going to cover that use case. There is currently no way to have concurrent containers running in the init phase so that would be potentially a much larger/messier change than what is being suggested here. |
Update on this KEP: We still need to agree on the API, it seems there is consensus that a simple way of marking containers as sidecars is prefered over more in depth ordering flags. Having a bool is somewhat limiting though so perhaps something more along the lines of |
@Joseph-Irving Actually, neither the boolean nor the
as opposed to
Please forgive my bad naming - I hope the names convey the idea. But there is one problem with the approach where we introduce |
@luksa You could also solve the init problem by just allowing an init container to be marked as a sidecar and have that run alongside the init containers. As I understand it, the problem is that init containers sometimes need sidecars, which is different from needing a container that runs for the entire lifetime of the pod. The problem with |
@Joseph-Irving We could work with that yes. It's not ideal for the sidecar to shut down after the init containers run and then have the same sidecar start up again, but it's better than not having that option. The bigger problem is that older Kubelets wouldn't handle init-sidecar containers properly (as is the case with main-sidecar containers). I'd just like you to keep init-sidecars in mind when finalizing the proposal. In essence, you're introducing the concept of "sidecar" into k8s (previously, we basically only had a set of containers that were all equal). Now you're introducing actual sidecars, so IMHO, you really should think this out thoroughly and not dismiss a very important sidecar use-case. I'd be happy to help with implementing this. Without it, Istio can't provide its features to init containers (actually, in a properly secured Kubernetes cluster running Istio, init containers completely lose the ability to talk to any service). |
In relation to the implementation discussion in #841, I've opened a WIP PR containing a basic PoC for this proposal kubernetes/kubernetes#75099. It's just a first draft and obviously not perfect but the basic functionality works and gives you an idea of the amount of change required. cc @enisoc |
I put together a short video just showing how the PoC currently behaves https://youtu.be/4hC8t6_8bTs. Seeing it in action can be better than reading about it. |
I've opened two new PRs:
Any thoughts or suggestions will be much appreciated. |
/milestone v1.33 As discussed, this KEP is going GA in 1.33 |
Hello @SergeyKanzhelev @Joseph-Irving 👋, v1.33 Enhancements team here. Just checking in as we approach enhancements freeze on 02:00 UTC Friday 14th February 2025 / 19:00 PDT Thursday 13th February 2025. This enhancement is targeting stage Here's where this enhancement currently stands:
For this KEP, we would just need to update the following:
The status of this enhancement is marked as If you anticipate missing enhancements freeze, you can file an exception request in advance. Thank you! |
@lzung I believe all criteria are met now |
Hello @SergeyKanzhelev 👋, Now that PR #5081 has been merged, all the KEP requirements are in place and merged into k/enhancements. This enhancement is all good for the upcoming enhancements freeze. 🚀 The status of this enhancement is now marked as |
Hello @SergeyKanzhelev @Joseph-Irving 👋, v1.33 Docs Lead here. Does this enhancement work planned for v1.33 require any new docs or modification to existing docs? If so, please follow the steps here to open a PR against Also, take a look at Documenting for a release to get yourself familiarize with the docs requirement for the release. Thank you! |
Hey @SergeyKanzhelev 👋 -- this is Udi (@Udi-Hofesh) from the 1.33 Communications Team! For the 1.33 release, we are currently in the process of collecting and curating a list of potential feature blogs, and we'd love for you to consider writing one for your enhancement! As you may be aware, feature blogs are a great way to communicate to users about features that fall into (but are not limited to) the following categories:
To opt in to write a feature blog, could you please let us know and open a "Feature Blog placeholder PR" (which can be only a skeleton at first) against the website repository by Wednesday, 5th March, 2025? For more information about writing a blog, please find the blog contribution guidelines 📚 Tip Some timelines to keep in mind:
Note In your placeholder PR, use |
Hey again @SergeyKanzhelev @Joseph-Irving 👋, 1.33 Enhancements team here, Just checking in as we approach code freeze at 02:00 UTC Friday 21st March 2025 / 19:00 PDT Thursday 20th March 2025. Here's where this enhancement currently stands:
With all the implementation(code related) PRs merged as per the issue description: Additionally, please let me know if there are any other PRs in k/k not listed in the description that we should track for this KEP, so that we can maintain accurate status. This enhancement is now marked as |
Hi @SergeyKanzhelev 👋, 1.33 Communications Team here again! This is a gentle reminder for the feature blog deadline mentioned above, which is 02:00 UTC Wednesday, 5th March, 2025. This is in just several hours! To opt in, please let us know and open a Feature Blog placeholder PR against Tip Some timeline to keep in mind:
Note In your placeholder PR, use |
Enhancement Description
k/enhancements
) update PR(s):k/k
) update PR(s):k/website
) update PR(s):k/enhancements
) update PR(s): KEP-753: add PRR questionnaire answers for beta #4255k/k
) update PR(s):k/website
) update(s): Document SidecarContainers graduation to beta website#43471k/enhancements
) update PR(s):k/k
) update PR(s): Promote SidecarContainers feature to GA kubernetes#129731k/website
) update(s):/sig node
Please keep this description up to date. This will help the Enhancement Team to track the evolution of the enhancement efficiently.
The text was updated successfully, but these errors were encountered: