Skip to content

Conversation

adrianreber
Copy link
Member

As described in sig-wg-lifecycle.md this PR is the next step after sending an email to [email protected] about the creation of the Working Group Checkpoint Restore.

CC: @rst0git, @viktoriaas, @xhejtman

@k8s-ci-robot k8s-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Jul 3, 2025
@k8s-ci-robot k8s-ci-robot requested review from deads2k and macsko July 3, 2025 13:33
@k8s-ci-robot
Copy link
Contributor

Welcome @adrianreber!

It looks like this is your first PR to kubernetes/community 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes/community has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: adrianreber
Once this PR has been reviewed and has the lgtm label, please assign saschagrunert for approval. For more information see the Code Review Process.

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. sig/cli Categorizes an issue or PR as relevant to SIG CLI. labels Jul 3, 2025
@k8s-ci-robot
Copy link
Contributor

Hi @adrianreber. Thanks for your PR.

I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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.

@k8s-ci-robot k8s-ci-robot added sig/node Categorizes an issue or PR as relevant to SIG Node. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. labels Jul 3, 2025
@github-project-automation github-project-automation bot moved this to Needs Triage in SIG Scheduling Jul 3, 2025
@k8s-ci-robot k8s-ci-robot added the do-not-merge/invalid-owners-file Indicates that a PR should not merge because it has an invalid OWNERS file in it. label Jul 3, 2025
@kannon92
Copy link
Contributor

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jul 10, 2025
@kannon92
Copy link
Contributor

Looking at #8519,

I see that we are missing a charter.

@adrianreber
Copy link
Member Author

Looking at #8519,

I see that we are missing a charter.

In https://github.com/kubernetes/community/blob/master/sig-wg-lifecycle.md#GitHub is says to add a charter once this initial PR has been merged. That's why is skipped it.

the integration of Checkpoint/Restore functionality into Kubernetes.
charter_link: charter.md
stakeholder_sigs:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sig auth may have a big say in security of this whole restoration pipeline

Copy link
Member

@rst0git rst0git Jul 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for pointing this out! Security is definitely an important topic that we need to discuss with sig-auth, both for the checkpoint API and the restoration pipeline. The following paper and master thesis describe our recent work on this topic:

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added sig auth to the list of stakeholder sigs

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this showed up in the sig-auth meeting, we may have missed the discussion around this WG

if this WG is contemplating taking state from a running pod / saving it / letting it be consumed on another node or from another pod or another namespace, then sig-auth is definitely interested in making sure the permissions model around that exists and is ~consistent with similar things Kubernetes does elsewhere (like PVC / snapshots)

We're happy to consult on that, I'm not sure our awareness / involvement rises to the level of sponsoring the WG :)

cc @kubernetes/sig-auth-leads

Copy link
Member

@mikebrow mikebrow Sep 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nod.. definitely needs an extra level of security due to customer data being serialized and available in the checkpoint, esp if not encrypted, but also due to windows of opportunity to do transactions/data manipulation.. then "undo" them by restoring a checkpoint

@k8s-ci-robot k8s-ci-robot added the committee/steering Denotes an issue or PR intended to be handled by the steering committee. label Jul 20, 2025
@aramase
Copy link
Member

aramase commented Aug 4, 2025

/assign ritazh

(assigned as part of SIG Auth triage; to review the SIG Auth updates)

@aramase aramase moved this from Needs Triage to In Review in SIG Auth Aug 4, 2025
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 5, 2025
@BenTheElder
Copy link
Member

BenTheElder commented Aug 20, 2025

@kubernetes/sig-node-leads are you all +1, officially?

@haircommander
Copy link
Contributor

+1 from me


- maintain a solid communication line between the Kubernetes groups and the
wider CNCF community
- submit a proposal to the KubeCon/CloudNativeCon maintainers track
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have doubts if this incentivize the right behavior and will encourage people to build WG to get a slot in the kubecon

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with Antonio, this particular line should be removed, it's sufficient what the previous point shows.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was just copied from 0743da8, but I will remove it.

the integration of Checkpoint/Restore functionality into Kubernetes.
charter_link: charter.md
stakeholder_sigs:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with Janet here, but please make sure to show up and present the scope of this proposal to one of the future SIG-Apps calls.

The Checkpoint/Restore Working Group aims to solve the problem of transparently
checkpointing and restoring workloads in Kubernetes, a functionality discussed
for over five years. The group will deliver the design and implementation of
Checkpoint/Restore functionality in Kubernetes, serving as a central hub for
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why it has to be a central part of Kubernetes, where multiple external solutions already exists?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i personally like the idea of having it be integrated because then the ecosystem can rely on it. for instance, we could make eviction or preemption less disruptive in kubelet/kueue respectively

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why it has to be a central part of Kubernetes, where multiple external solutions already exists?

Can you be more specific about what already exists? Not sure what you are referring to?

Checkpoint/Restore functionality in Kubernetes, serving as a central hub for
community information and discussion. This initiative addresses a wide range of
problems, including fault tolerance, improved resource utilization, and
accelerated application startup times.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This first thing that I'd like to point out is that there are 2 main use cases:

  1. the whole control-plane snapshot
  2. workload

Which one this group is planning to cover? As I'm reading this document I'm seeing both used interchangeably which is very confusing. That's why I'd start with clearly drawing the line between the two and properly documenting which one of these two (or both) are you planning to tackle.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do yo mean by "control-plane-snapshot"?

Copy link
Member

@rst0git rst0git Sep 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In our presentations, we use the following diagram to illustrate how checkpoint/restore operations work in Kubernetes:

Image

Reference: Efficient Transparent Checkpointing of AI/ML Workloads in Kubernetes


- Ability to checkpoint and restore a container using kubectl
- Ability to checkpoint and restore a pod using kubectl
- Integration of container/pod checkpointing in scheduling decisions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why pod checkpointing would have anything to do with scheduling?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because, as far as I know, a pod is always scheduled on one node. It doesn't sound useful to base the scheduling on the possibility to migrate containers. Container migration is an important first step, but for automatic scheduling decisions, it would make more sense to be able to easily migrate a complete pod.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our use-case is similar to how CRIU is integrated with Google's Borg 1 and Microsoft's Singularity 2 to enable preemptive and elastic scheduling.

Footnotes

  1. Task Migration at Scale Using CRIU

  2. Singularity: Planet-Scale, Preemptive and Elastic Scheduling of AI Workloads

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why pod checkpointing would have anything to do with scheduling?

I agree that pod checkpointing needs to take scheduling into consideration. Let's assume the following scenario: after a Pod is checkpointed, it might not be deleted. However, since the memory, CPU, and GPU resources have already been dumped to a volume, the resources originally allocated to the Pod could then be reallocated to other Pods. When the Pod needs to be resumed later via restore, the scheduler should also be involved.


- maintain a solid communication line between the Kubernetes groups and the
wider CNCF community
- submit a proposal to the KubeCon/CloudNativeCon maintainers track
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with Antonio, this particular line should be removed, it's sufficient what the previous point shows.

@k8s-ci-robot k8s-ci-robot removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. do-not-merge/invalid-owners-file Indicates that a PR should not merge because it has an invalid OWNERS file in it. labels Sep 9, 2025
Co-authored-by: Viktória Spišaková <[email protected]>
Co-authored-by: Antonio Ojea <[email protected]>
Co-authored-by: Sergey Kanzhelev <[email protected]>
Signed-off-by: Adrian Reber <[email protected]>
@aojea
Copy link
Member

aojea commented Sep 9, 2025

SIG Network questions (cc @danwinship @thockin )

does checkpoint restore move the network state ? as the established TCP connections? if affirmative, it requires IP mobility or uses Services or any other abstraction?

@adrianreber
Copy link
Member Author

SIG Network questions (cc @danwinship @thockin )

does checkpoint restore move the network state ? as the established TCP connections? if affirmative, it requires IP mobility or uses Services or any other abstraction?

Migrating a container with established TCP connections is possible, but only if the restored container has the same IP as the checkpointed container. In Podman we were able to implement but I am not sure if this is something easily doable in Kubernetes. From our side we would need the possibility to create a pod with a certain IP and then it would work. Is there something in Kuberentes which would allow pod creation with a given IP address?

@aojea
Copy link
Member

aojea commented Sep 9, 2025

. Is there something in Kuberentes which would allow pod creation with a given IP address?

For Pod IPs, Is an IPAM choice of the CNI plugin, kubernetes network model allows that, but implementing it is more complex since most implementations have locality implied for the assigned Pod IPs, and to allow IP mobility it requires to deal with routing and ipam across the entire cluster to keep the IP connectivity that adds a considerable complexity.

Another thing is if you just expose the Pod application as a Service or Gateway API or some high level abstraction that have VirtualIP, then it is simpler, since those are already abstraction with cluster scope ... This works for Ingress traffic to the application, for Egress traffic is also more complex

@helayoty helayoty moved this from Needs Triage to Backlog in SIG Scheduling Sep 9, 2025
@helayoty helayoty moved this from Backlog to Needs Review in SIG Scheduling Sep 9, 2025
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Sep 9, 2025
@k8s-ci-robot
Copy link
Contributor

PR needs rebase.

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.

@lujinda
Copy link

lujinda commented Sep 14, 2025

Is there a slack channel where we can discuss C/R related ideas? Thanks

@adrianreber
Copy link
Member Author

Is there a slack channel where we can discuss C/R related ideas? Thanks

You are not the first to ask. We kind of are waiting for the proposal to be accepted to have a slack channel. Not sure if there is a another way to have a slack channel without having the proposal merged.

@rst0git
Copy link
Member

rst0git commented Sep 15, 2025

Is there a slack channel where we can discuss C/R related ideas?

@lujinda Please reach out to us in the Kubernetes slack. You can find Viktoria, Adrian, and myself there :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. committee/steering Denotes an issue or PR intended to be handled by the steering committee. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/apps Categorizes an issue or PR as relevant to SIG Apps. sig/auth Categorizes an issue or PR as relevant to SIG Auth. sig/cli Categorizes an issue or PR as relevant to SIG CLI. sig/node Categorizes an issue or PR as relevant to SIG Node. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
Status: In Review
Status: Needs Review
Development

Successfully merging this pull request may close these issues.