-
Notifications
You must be signed in to change notification settings - Fork 632
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
criu with k8s, how to? #1242
Comments
I am not aware of any other public discussions around Kubernetes and container migration. |
@adrianreber thanks for the response. Sure, as I understand the above community activities will take a while to have checkpoint and restore available for pods with k8s, so I was looking for a working PoC possibly with workarounds, just to try it out with k8s pods. Thanks! |
@ashish-billore You should check @schrej works here: kubernetes/kubernetes#3949. He has done a very wonderful job. He also published the document for testing pod migration in K8s ( in the thread) https://docs.google.com/document/u/1/d/1E5p_FOHDGAp5YEQ23dCi9I8wPnMzd4aOazxI4uO_AMo/edit |
@vutuong Thanks for the useful info. |
|
@vutuong It seems you have another definition of a stateful application than I do. How do you define a stateful application? |
|
When talking about stateful, from CRIU's point of view, it is about the actual state of all involved processes. Meaning everything the container processes have loaded in memory will still be loaded into memory after migration. Any kind of memory backed database for example. Or processes which need a long time to start and to initialize. Not sure what a StatefulSet exactly is in Kubernetes, but it sounds like it is talking about state concerned to storage. If the container, even in a StatefulSet, is started again it still needs to load all the data from storage. CRIU enables you have a stateful migration including everything which the process has loaded in memory. |
A friendly reminder that this issue had no activity for 30 days. |
Hello after all this long time, is there any feature supporting SCTP socket maintenance after migration in CRIU? If not is there any way @ashish-billore to explain how did he manage to overcome it? Thank you :) |
First, this is not an issue, just a query, so please feel free to action it accordingly.
Context:
So far I am able to make criu checkpoint and restore work well for my application (user_sctp based sctp application) with runc directly (no management/orchestration layer above), all thanks to support from criu community and @adrianreber 👍
Now my goal is to somehow make this checkpoint and restore work with k8s pods.
Findings so far:
I see following pre-reqs for this:
k8s container runtime support:
docker (though latest is broken) has experimental support for criu; cri-o seem to have patches under progress to make it work; containerd has criu patches too.
k8s support:
There are KEPs and patches, some active ones are:
KEP: Add Forensic Container Checkpointing KEP kubernetes/enhancements#1990
Pod lifecycle checkpointing kubernetes/kubernetes#3949
While the community process is underway to have checkpoint restore support available in k8s (which will take sometime), I want to try it out in the meantime.
I could not find any recent working reference of criu + k8s.
If anyone knows, please share.
The text was updated successfully, but these errors were encountered: