The B2B Podcast Index
Index
All categories
MarketingSalesSaaSFinanceHROpsLeadershipCustomer SuccessAI & DataProductStartups & FoundersRevOpsEngineering & DevTools
MethodologySubmit
Best of:MarketingSalesSaaSFinanceHROpsLeadershipCustomer SuccessAI & DataProductStartups & FoundersRevOpsEngineering & DevTools
An independent project byFame
SearchBest episodesGuestsInsightsMethodologySubmit a podcast
Index/Engineering & DevTools/DevOps and Docker Talk: Cloud Native Interviews and Tooling
DevOps and Docker Talk: Cloud Native Interviews and Tooling artwork

Move K8s Stateful Pods Between Nodes

DevOps and Docker Talk: Cloud Native Interviews and Tooling · 2025-10-09 · 45 min

0:00--:--

Key moments - from our scoring

Substance score

66 / 100

Five dimensions, 20 points each

Insight Density14 / 20
Originality12 / 20
Guest Caliber15 / 20
Specificity & Evidence13 / 20
Conversational Craft12 / 20

Cast AI's pod live migration feature allows administrators to dynamically move running Kubernetes pods between nodes without service interruption, addressing a critical gap in Kubernetes that has existed since containers entered production at scale. The technology uses delta replication for memory and integrates with CSI storage and CNI network plugins to maintain state during transitions. This is particularly valuable for enterprises running stateful workloads - databases, long-running Spark jobs, 24/7 security processing pipelines - that cannot tolerate restarts. Philip Andrews (Global Field CTO) and Dan Muret (Senior Sales Engineer) explain the technical mechanics and real-world use cases: hardware maintenance, OS patching, bin-packing optimization, spot instance evacuation, and Kafka-connected streaming workloads with strict SLAs. The feature addresses a fundamental Kubernetes operational challenge: while bin-packing can reduce cluster costs by 40-50%, stateful workloads scattered across nodes block consolidation. Live migration enables cost optimization without sacrificing reliability for workloads that don't conform to cloud-native ideals.

Key takeaways

  • →Pod live migration uses delta replication to move memory in incremental chunks, pausing only for 6-10 seconds at the final cutover rather than blocking traffic for minutes.
  • →Stateful workloads - databases, long-running jobs, legacy applications - now dominate enterprise Kubernetes clusters, making live migration necessary despite earlier assumptions that Kubernetes would remain stateless.
  • →The technology enables bin-packing strategies that consolidate workloads from 10 nodes to 6-7 nodes without service interruption, directly reducing cloud infrastructure costs.
  • →Live migration preserves TCP connection state and Kafka driver connections, critical for long-running Spark streaming jobs and tight-SLA security pipelines that cannot tolerate restarts.
  • →Cast AI's implementation currently has data transfer limits - 120GB in a 2-minute spot instance evacuation window is challenging, but background replication for maintenance can take 20+ minutes without pausing service.

Guests

Philip AndrewsDan Muret

Topics in this episode

KafkaCast AIKubernetes pod live migrationContainer Storage Interface (CSI)CNI network pluginsDelta replicationBin-packingSpark streamingvMotionSpot instance evacuation

Questions this episode answers

How does Kubernetes pod live migration maintain TCP connections and network state during a node transition?

The migration controller queues incoming traffic while copying the pod's memory, IP address, and TCP state to the new node via delta replication. Once the pod is live on the new node, queued messages are replayed, preserving connection state for protocols like WebSockets and Kafka connections without losing data.

What are the typical use cases for pod live migration in Kubernetes?

Common use cases include OS or Kubernetes patching on nodes without downtime, cost optimization through bin-packing, evacuating pods from spot instances before termination, and maintaining 24/7 availability for stateful workloads like Spark streaming jobs with strict SLAs.

How long does it actually take to migrate a Kubernetes pod between nodes?

Background migration for maintenance can take 20+ minutes for large data sets (terabytes of NVME), but the pod only pauses for 6-10 seconds during the final cutover when deltas become small enough. For spot instance evacuation under 2-minute windows, the practical limit is roughly 32GB nodes, with 64GB becoming marginal depending on network bandwidth.

Can pod live migration replace proper Kubernetes pod shutdown and connection draining?

No - live migration is complementary to proper shutdown procedures. It addresses the reality that 95% of enterprise workloads don't implement ideal Kubernetes practices like graceful termination and connection draining, but understanding TCP/IP, load balancer state, and database mirroring remains essential.

What storage backends does Cast AI's pod live migration currently support?

The solution integrates with CSI (Container Storage Interface) storage plugins and works on specific cloud providers due to infrastructure differences, though the exact list of supported clouds and storage types is determined by replication speed and bandwidth capabilities rather than absolute technical limitations.

What our scoring noted

Our reviewer’s read on each dimension, with quotes from the episode.

Insight Density

14 / 20

The episode delivers solid technical depth on pod live migration mechanics and use cases, with concrete explanations of delta replication, memory/IP/connection state handling, and bin packing. However, it spends significant time on introductions, broad context-setting (VM vMotion history), and repetitive points about stateful workloads that limit novel insight density. The technical meat - socket buffering, pause windows, CNI plugin challenges - is genuine but not densely packed.

once the two nodes have identical copies of the data, that's when the live controller will say, it's time to cut over it will cut the connections from one, pause it and put it into a pause state in containerd, then it will unpause on the new node
what we're doing is we're doing delta replication. So you replicate a big chunk, and then a smaller chunk, and then a smaller chunk until the chunk is small enough where you can do it in a pause window

Originality

12 / 20

The episode applies known VM migration principles (vMotion, delta replication) to Kubernetes containers - a logical but not novel idea. The framing around stateful workloads in Kubernetes, spot instance automation, and bin packing are familiar concepts in the Kubernetes community. The main originality lies in Cast AI's specific technical solution to the networking/IP persistence problem, but this is presented as a product feature rather than a broader conceptual advance. The conversation lacks counterintuitive takes or first-principles questioning of the problem itself.

over 20 years ago, the virtual machine vendors built this live migration feature into their products, and finally, in 2025, we're now able to do that in Kubernetes
we were able to move the logic up to a containerd plugin makes it a lot more portable

Guest Caliber

15 / 20

Philip Andrews (Global Field CTO) and Dan Muret (Senior Sales Engineer) are appropriately senior practitioners at Cast AI with direct accountability for the product. Philip demonstrates deep technical credibility discussing kernel-level engineering decisions and customer challenges; Dan brings sales engineering perspective on real customer deployments and adoption patterns. Both have multi-year experience with the technology. However, neither is a founder or C-level decision-maker, and the platform is their employer's product, creating inherent bias. Caliber is solid for a vendor conversation but not exceptional range of outside perspective.

handling, a lot of our large customers. a lot of the strategic partnerships, usually new technologies, so working with a lot of our, you know, customers on showing them new technologies
I'm working with a customer now that's doing a lot of video processing in Kubernetes and that's a very, you know, CPN memory intensive job

Specificity & Evidence

13 / 20

The episode includes concrete technical specifics: 32GB/64GB node limits for 2-minute spot interruptions, 20-minute replication times for terabyte NVME workloads, 6-10 second pause windows for large services, 5-minute SLA example with Spark streaming, two-minute pod restart penalty for Kafka jobs, and specific CNI implementations (AWS VPC CNI, Calico, Cilium). However, many claims lack named customer examples, actual cost savings data, or performance benchmarks. The video processing customer is mentioned but vaguely ("D CPUs to 6,500 CPUs"). Missing are specific before/after metrics, adoption numbers, or failure case details.

If you're trying to move 120 gigs of data physics is working against you. you don't have enough time in that two minute window
they have super tight SLAs. They have a five minute SLA from message creation to end run through the entire detection pipeline

Conversational Craft

12 / 20

Host Bret Fisher asks competent foundational questions and draws out technical details effectively, but rarely pushes back, challenges claims, or explores tensions. He accepts the product narrative largely uncritically, makes few follow-up probes on limitations, and doesn't press on competitive alternatives or failure modes. Questions are mostly open-ended invitations for guests to explain rather than tests of their positions. The conversation is friendly and informative but lacks the sharp skepticism or productive friction that would elevate it; follow-ups are surface-level ("how's that work?") rather than drilling into why a claim matters or what trade-offs exist.

am I right? in terms of networking we're talking about live migrations, having to be concerned with ips and, connection state, stuff like that
I'm assuming also that when we talk about something like live migrations, we're not just concerned with networking. We're also somehow shifting to storage. I'm guessing

Conversation analysis

Computed from the transcript - who did the talking, and the words that came up most.

Most-used words

kubernetes47node42live41workloads32move31migration26nodes26running22cluster21data18cast17spot17networking17different16first16back14

Episode notes

Bret is joined by Philip Andrews and Dan Muret of Cast AI to discuss pod live migration between nodes in a Kubernetes cluster. The Agentic DevOps Guild has launched! It's a training + community + mentorship program for engineers wanting to learn the latest CI/CD automation and dive into Agentic DevOps. Meetups are happening now, with new course videos dropping every few weeks. Join the Guild and become your team's leader in AI for infrastructure automation Cast AI dynamically moves your pod to a different node without downtime or data lost. It copies your running pod data, memory, IP address, and TCP connections from one node to another in real time. In this episode, we nerd out over how Cast AI works under the hood, use cases for it, including hardware and OS maintenance on a node. I've got a feeling Cast AI has a winning feature on their hands. Show Links Cast AI website Cast AI YouTube Channel Check out the video podcast version here: Creators & Guests Cristi Cotovan - Editor Bret Fisher - Host Beth Fisher - Producer Dan Muret - Guest Philip Andrews - Guest You can also support this podcast by subscribing to my YouTube channel and my weekly newsletter at bret.news !

Full transcript

45 min

Transcribed and scored by The B2B Podcast Index.

Kubernetes Pod Live Migration. That's what Cast AI calls it when they dynamically move your pod to a different node without downtime or data loss. They've built a Kubernetes controller that works with CSI storage and CNI network plugins to copy your running pod data, the memory, the IP address, and the TCP connections from one node to another in real time Welcome to DevOps and Docker talk, and I'm your solo host today, Bret Fisher. This YouTube live stream was a fun one because I got to nerd out with engineers Philip Andrews and Dan Muret from Cast AI on Kubernetes pod live migrations and how it works under the hood.

We talk about use cases for this feature, including hardware or OS maintenance on a node. Maybe for right sizing or bin packing your pods for cost savings or moving off of a spot instance that's about to shut down. Or really anytime you need to move a daemon set that would cause an outage if the pod had to restart or be redeployed. I don't know of any other turnkey way to do this on Kubernetes today, but I've got a feeling that Cast AI has got a winning feature on their hands, and I'm glad that we got to dig into it.

Over 20 years ago, the virtual machine vendors built this live migration feature into their products, and finally, in 2025, we're now able to do that in Kubernetes. Let's get into the episode. Welcome to the show. All right, Both of these gentlemen are from Cast AI.

Philip is the global field, CTO at Cast AI. What exactly does Global CTO do? handling, a lot of our large customers. a lot of the strategic partnerships, usually new technologies, so working with a lot of our, you know, customers on showing them new technologies, helping in, proof of concepts with new technologies.

it's been kind of a cool role. basically on the technical customer facing side. I get to do a lot with our largest customers in solving some of the the hardest problems. Nice.

when you don't know what the title is, it makes it sound like you just live in an airplane. it sounds impressive. and we've got Dan Muret or Muret. I really don't know my French, so that's probably, a horrible pronunciation.

Dan is here, he's the senior sales engineer with CAST AI or one of them. I'm gonna make you the sales senior sales engineer so that you sound very elite. Uh, welcome Dan. who could tell me about what's the elevator pitch for Cast AI because I've known about you all for years.

I've visited your booth at KubeCon at least a half a dozen times over the years. what's the main benefit of Cast AI? Sure I can grab that one. when Cast AI was founded, it was to solve a problem that our founders had in their last startup years ago, which was every month their AWS bill was going up 10% regardless of what they did the month before to try to.

Mitigate and manage costs across the in infrastructure. they sold that startup to Oracle, when they finished that Oracle time, they went and figured out how to solve this problem. They said, well, Kubernetes is gonna be the future platform. We're gonna make our bet on Kubernetes.

And the only way to solve this problem is through automation. Because doing things manually every month, one, it's tedious and takes up a lot of time. And two, it's just, not helpful, right? You save a little bit every, you know, it's two steps back for every step forward you make.

With Cast AI, it's fully automation first, right? We made the effort that everything was going to be automated from the start. when it comes to node auto scaling, node selection, node, right sizing, workload, right sizing, everything to do with Kubernetes, everything we implement is automated. And that's where the live migration piece came in being able to automatically move applications around within the cluster without having downtime.

and that's where application performance automation comes in, Moving from this application performance monitoring mindset. Datadog has made a lot of money on that. I dunno if I'm allowed to say that. but they've done very well and have a fantastic platform.

we love Datadog, but you get data overload. You end up with metric overload and actioning on those is very hard. Where we need to go from here, especially with the AI mindset that we're moving into, is automation of that application performance. And that's what Cast AI is leading the way in.

Nice, when you all reached out and I learned about the fact that you now have live migration, it took me back to almost 25 years ago when that was first invented for VMs at the time it felt like magic. It did not seem real. We all had to try it to believe it because it seemed impossible. To, move from one host to another, maintain the ip, maintain the TCP connections.

surely I'm gonna freeze up and it's gonna be like a frozen screen. we all just assumed that. eventually, and maybe at first it was a little hiccupy, I think, if I remember correctly, like 2003, 2005. It was one of those where it wasn't quite live and they didn't, it was like very short amounts of gaps.

then eventually it got good enough that it was live. I was running data centers, for local governments at the time. So I was very interested in this. 'cause we were running both ESX and HyperV.

So I was heavily invested in that feature and functionality. So when I saw that you were doing it to Kubernetes, my first thought was, why did this take so long? why don't we have this yet on everything? Because it's clearly possible, it's technically possible.

Obviously, it's not super easy and requires a lot of low level tooling that has to understand networking and memory and you know, dis disc rights and all that kind of stuff. So I'm excited for us to get into exactly how this sort of operates for a Kubernetes admin. And I really feel like this show's gonna be great for anyone learning Kubernetes or Kubernetes admins, because to talk about the stateful set, the daemon set problem of, we've got stateful work, everyone's got, I mean, everyone I know almost has stateful workflows in Kubernetes.

I would say, I don't know about you all's experience, but to me it's an exception when everything is stateless in Kubernetes nowadays. Do you find that to be the case we talk to customers all the time, right. And yeah. Used to, you know, a few, just a couple years ago, right.

It was a lot more stateless. Web servers, whatever. now we're definitely seeing a shift to, more stateful workloads whether it's, legacy applications being forced into Kubernetes as part of a modernization project or whatever. We're seeing a lot more stateful workloads in Kubernetes for sure.

Particularly amongst the Fortune one hundreds, fortune five hundreds, right? 'cause you've got this modernization, and I put it in quotes, where modernization means taking some crusty old 15-year-old application, containerizing it and shoving it in Kubernetes and calling it cloud native, the flawed approach of lift and shift. and you end up with a lot of applications that are in Kubernetes. They're listed as a deployment, but you can't restart them without your customer having a significant outage.

it goes against everything Kubernetes was built on. But that's the world we live in today. when we first launched Live migration, and I posted about it on LinkedIn, some of the first questions I got was, why is this even needed? If you're doing Kubernetes correctly, live migration shouldn't even be a real thing.

yes, but 95% of the customers I deal with. Don't do Kubernetes, the right way. Well, yeah, I honestly think we could argue that's a great point. when Docker and Kubernetes were both created, it was like stateless.

'cause it's easy, you know, move everything around. It's wonderful. But I think that to, I mean, this channel, if there's anything consistent about this channel over the almost decade that has existed, it's that I, it's all containers. Like I don't care what the tool is, we're doing it in containers.

the large success of containers is because we could put everything in it. so many. Evolutions or attempted evolutions in tech have been, well, you're gonna have to rewrite to, you know, functionless, you know, or functions. you're serverless, you're gonna have to write functions now or you're gonna have to rewrite this language or whatever.

and that's, I think that's like the secret sauce of containers was that we could literally shove everything in it. It's also the negative. And so there's, there's a thing that, I don't know if I learned it from a therapist or whatever, but often our weaknesses are just overdone strengths. And I feel like the strength of containers is that you can do everything with it.

you can put every known app on the planet in it. They will eventually work if you figure it out. the overdone weakness is that we're putting everything in there which makes managing these infrastructures very hard. you have to assume everything's fragile Until you are sure that it's truly stateless.

even stateless, people say stateless and what they really mean is it's, it doesn't care about disc, but it definitely cares about connections, which is when we're trying to talk about stateless, that's not technically accurate. Like when we say stateless, we should probably mean also doesn't care about connections. at least once the connections are drained. it's an interesting dilemma we all have in the infrastructure of we have the power to be able to move everything and do everything, but also everything's super fragile that we're running at the same time, so how do we even manage that?

We've encountered a lot of teams that, swore up and down they were stateless, right up until you started bin packing their cluster. They said, wait, wait, wait. why are we having all these restarted pods? We're like, because we're bin packing and we're moving things, and we're getting better, optimization.

They're like, but my container restarted. Well, yes, that's what containers do in Kubernetes. Right. And for those that are maybe just getting into Kubernetes or haven't dealt with large enterprise forever workloads where they just can't be touched.

I've had 30 years in tech of don't touch that server. don't touch that workload. It's fragile, it's precious, but it's also probably on the oldest hardware in the least maintained. so the idea of, one of the performance measures that any significant size Kubernetes team is dealing with is the cost of infrastructure.

And then we keep getting told, I think this was just in the last year at KubeCon, that even on top of Kubernetes, we're still only averaging like 10% CPU on average utilization across nodes. Like we, we still are struggling with the same infrastructure problems that we were dealing with the last 30 years, even before VMs, before virtualization. That was the same problem we had then because everybody would want their own server and they always had to plan for the worst busiest day of the year.

So they would buy huge servers, put 'em in, and they'd sit idle almost all the time because they barely got 5%, utilization. So I can see where like one of the core premises of something like a application performance tool is that we're gonna save tons of money by bin packing. can you explain the bin packing process? what does that look like?

so one of the big things with Kubernetes is the scheduler will typically round robin, assign pods to nodes. if you have 10 nodes in a cluster, your pods will more or less get evenly distributed to those nodes in the cluster. You can manage that with certain different scheduler hints and certain scheduler, suggestions to steer that towards, you know, most utilized, least utilized, et cetera. But at the end of the day, you're gonna have spread out workloads across your nodes.

Bin packing is basically the defragmentation of Kubernetes right back. You know, Bret, when you were first starting out, when I was first starting out, and you could actually defragment a hard drive and you get to move the little Tetris blocks around the screen, days. being able to do that in a Kubernetes cluster can mean massive, massive savings on the actual utilization of that cluster because now you free up a bunch of workloads, a bunch of nodes in the cluster that are no longer necessary, you can delete those off and when you need them, you just add them back.

that's the joy of being in a cloud environment, you can use the least amount of resources when you don't need 'em. So in, for instance, at, you know, your off busy hours, your nighttime hours, and then when you start needing 'em again, you spin 'em up, you add more to it, you scale up during the day, and being able to do that process over and over again every day is how you can optimize your cloud resources. What we see is that. People have so many stateful workloads whether it's stateful in real state or stateful in, this is a really poorly architected application, or stateful in this application takes 15 minutes to start up and I, it's a monolithic and I can only run one copy of it so I can't move it.

All of those things causes, so you can't bin pack a cluster, right? You can't move those things around. So what ends up happening is people just end up with these stateful workloads scattered throughout all 10 nodes. And even if the 10 nodes are only 60% utilized, you can't get rid of any of them because it'll cause some kind of service interruption.

And that's where live migration allows you to move those stateful sensitive workloads. So now those 10 nodes can go down to six or seven nodes without having a service interruption, even if there's less than ideal workloads scattered throughout the cluster. stateful versus stateless versus like, where's the scenario for where we need a live pod migration and like to those that are perfect in all their software and they run and they control all the software that runs on Kubernetes.

I don't know who those people are, but let's just say they exist. Then this isn't needed. Every database has a replica or database mirror, so you can always take a node down. Every pod properly has proper shutdown for ensuring that connections are properly moved to a new pod.

By the way, I used to do a whole conference talk on TCP packets and, resetting the connection to make sure it moves properly through the load balancer to the next one, and having a long shutdown time so that you can drain connections. that world of shutting down a pod is so more complicated than anyone gives it. everyone treats it like it's casual and easy, and it's just not if you're dealing with, hundreds of thousands or millions of connections. there is a lot of nuance and detail to this.

and I often end up with teams where they implement Kubernetes. It's a sort of predictable pattern, right? They implement Kubernetes, move workloads to it. They think Kubernetes gives their workloads magic and then they just start trying moving things around and they realize when their customers complain that, The rules of TCP IPS load balancers and connection state, like all these rules still apply.

you have to understand those lower levels and obviously disc and writing to disc and logs for databases and all that stuff. that's still there too, I think. I think the networking is where I see a lot of junior engineers hand waving over it because quite honestly, the cloud has made a lot of the networking problems go away. So we don't have to have Cisco certifications just to run servers anymore.

We used to, but now we can get away with it till a certain point, in the career or complexity level. And then suddenly you're having to really understand the difference between TCP and UDP and how session state long polling or web sockets, how all these things affect. Whether you're going to break customers when you decide to restart that pod or redeploy a new pod. I love that stuff because it's super technical and you can get really into the weeds of it, and it's not, I wouldn't call a solved problem for everyone.

my understanding of something like a live migration is, takes most of those concerns. it doesn't make them irrelevant, but it does deal with those concerns. am I right? in terms of networking we're talking about live migrations, having to be concerned with ips and, connection state, stuff like that.

yeah, so with being able to do the networking move of things, to your point, reestablishing those sessions. one of the big things we see is long running jobs. if you've got a job that's running for eight hours and it gets interrupted at six, you've lost that job. Even if you try to, move it from one to, there's some checkpointing involved, a lot of times, like on a spark workload, the driver will just kill the pod and restart it if it senses any kind of interruption in the networking.

So the networking's super important there. Being able to maintain that. Long running sessions, web sockets. To your point, we've actually tested this extensively with web sockets.

Web sockets, stay connected. And we're still in those early vMotion days. there is a slight pause when we move things. it took vMotion multiple years before they got it kind of really ironed out.

We're moving probably faster to them 'cause we have a lot of experience, you know, of the experiences they went through. and the research that's happened since then. So I think we're moving pretty fast on shortening that time window. But what we found is you queue up all the traffic and once the pod is live on the new node that traffic is replayed and all the messages come through.

So even on something like a web socket, you don't actually lose messages. They're just held up for a few seconds. And that's extremely important from maintaining that connection state, like you were mentioning. one of our customers that we're working with this heavily on, they run spark streaming jobs.

So they're 24 7, 365, pulling off a queue, running data transformations and detections, and then pushing somewhere else for alerting mechanisms. If they have a pod go down, it takes about two minutes to get that process restarted, pull in all the data that they need. Again, that's two minutes of backlog. They have super tight SLAs.

They have a five minute SLA from message creation to end run through the entire detection pipeline. So if you've got a two minute delay on that shard in your Kafka topic, that's a huge chunk of that five minutes that you just ate up. You're talking all the other pipeline. It's very easy to start missing SLAs there.

It's, you can't take maintenance windows if you're 24 7, 365 and you're doing security processing. you don't. You can't be like, well, security's gonna be offline for 10 minutes while we move our pods around. Like, that's just, that's not acceptable in that world mindset.

so keeping that connectivity, keeping the connection state, being able to keep everything intact, keeping the Kafka connection, keeping the, spark driver connection is all super important with being able to move that entire TCP/IP stack over from one node to another, during that migration process. Yeah, and I mean, we're really talking about a lot of the different kinds of problems that come with shifting workloads like being able to say, you know, walking into an environment and sort of being your own wrecking ball and, your own chaos monkey and saying, I'm gonna go over here and push the power button on this node, or I'm gonna properly shut down this node, do you have everything set up correctly so that connections are properly drained that is a, such a.

I would say a moving target, especially because every time we've had these processes where I've had clients where we go through this like exercise of we're going to do maintenance on a node and we're even gonna plan for it, and then we do it, and then we fix all the issues of the pods and the shutdown timing and, the Argo CD deployment settings that we need to massage and perfect. And then, you know, six months later, if we do it again, the same thing happens because now there's new workloads that weren't perfected and weren't well tested.

if I can make a career out of actually being like. a pod migration guru, like that sounds like my kind of dream job where we crash and break everything and then we track all of the potential issues of that and we are like a tiger team that goes pod by pod and certifies this is like, yep, this pod can now move safely without risk. because we've got everything dialed in. We've got all the right settings.

I feel like that's a workshop opportunity. maybe sell something on that because there are so many levels of complexity we haven't even talked about, like database logs and database mirroring you can't really spin up a new node of a database and let it sit there. Idle is a pod while you're waiting for the old one to shut down, they can't access the same files, blah, blah, blah. it just depends on the workload, on how complex this all gets.

But I'm assuming also that when we talk about something like live migrations, we're not just concerned with networking. We're also somehow shifting to storage. I'm guessing there's certain limitations to that where you're not replicating on the backend volumes. You're, I guess you're just using like ice zy reconnects or how's that, how does that work?

we haven't really gotten into the solution, but I know you're only on certain clouds right now, and I'm assuming that's partly due to the technicals of the limitations of their infrastructure. Right, exactly. each cloud has different kind of quirks, around how they function, what the different, technologies look like around them. somebody had asked about being able to move, you know, larger systems are the limits around it and their, it depends on the use case, right?

If you're talking spot instances, being able to move from one spot instance to another spot instance in a two minute interruption window on AWS, depends on how much data. If you're trying to move 120 gigs of data physics is working against you. you don't have enough time in that two minute window to get enough through the pipe over to the new, system. Now if you're talking small pods, if you're talking less than 32 gig nodes, you can move that fast enough.

64 gigs, maybe you're on the edge. Depends on how much other network traffic is tying up the bandwidth, 64 gigs is getting on the edge that you can move in a two minute window. that other example I was talking about, those long running spark streaming jobs, if they're running on demand, live migration, is still a massive benefit because now you can do server upgrades without taking an outage. You can create a new node running your new patch version of, Kubernetes, running your new Patched Os, and migrate the pod from one to the other.

Your time to replicate is less important. Even if it takes you three minutes four minutes, or five minutes to replicate the memory from one box to the other, who cares? It's not gonna be paused for that long, because what we're doing is we're doing delta replication. So you replicate a big chunk, and then a smaller chunk, and then a smaller chunk until the chunk is small enough where you can do it in a pause window.

And so now when you're moving a huge service from one to the other. Same thing. If you're talking like NVME local storage, we've got another customer we're working with and it's a different set of problems. They have a terabyte of NVME that they use on local ephemeral disc on every node that needs to be replicated from node to node.

When they do node upgrades, that takes about 20 minutes, to replicate all of that from one node to another, even on high throughput discs, on high throughput nodes. But if it's happening in the background, while everything else is humming along nicely, who cares? Keep replicating it over. You keep going down to Deltas, and then once your deltas get small enough, you pause for six to 10 seconds, depending on how big the service is.

And then you slide it over. a lot of these things are being solved. We're actively reducing these pause times by being able to do more prep behind the scenes, being able to do more processing behind the scenes. everything is, operating as a containerd plugin.

I saw somebody asked, about on-prem we will be supporting on-prem, we will be supporting other solutions. The big catch there is everybody has some different flavor of networking and different flavors of things behind the scenes. The actual live migration piece right now could apply to any Kubernetes anywhere. It's the IP stack that gets a little trickier because you've got cilium running places, you've got Calico running places, you've got VPN, V-P-C-C-N-I running places, you know, everybody has different networking flavors.

So being able to maintain network connections when you do the migration is largely the more difficult part of the whole process. Hmm. Being able to move the pod isn't that bad, so if you've got workloads that you can reestablish connections and the connection resetting is not a big deal, but you don't wanna have to restart the pod, that's fairly straightforward. We could pretty much do that today across any containerd compatible Kubernetes.

It's specifically the networking that causes a lot more hardships, because everybody has a different flavor of networking. for AWS, we were able to fork the open source AWS node CNI, and create our own flavor of it that now handles the networking piece. So we're using the open source AWS CI code, and we've modified it, and now it works just fine. for our purposes, we're doing something similar on GCP, working with the gc.

GPFI recall is using cilium under the hood for their networking. So we're gonna be, building a similar plugin for their cilium side. Yeah, and the nice thing is, I guess if you build it for cilium. would it work universally across any cilium deployment?

In theory, I mean, I'm just thinking of the most popular CNIs and if you check those off the list, it suddenly gives you, you know, a lot more reach than having to go plowed by cloud or os by os, you know? and, Exactly. our first iteration of this back in January, February, the first version that we demoed was actually Calico. A lot of people were like, I don't wanna have to rip out my cluster and rebuild it with Calico as the CNI.

we were able to figure out a way to work with the, VPC CNI, as a backing basis there. So Calico's pretty much already built. we've got AWS CNI now built, cilium our next target, that saw somebody asked about Azure, Azure is probably gonna be early 2026. we'll be E-K-S-G-K-E and then we'll work on a KS, and then we'll work on-prem solutions after that.

So on-prem will probably be sometime in 2026. Yeah, I can remember, going back to the two thousands. I can remember when we went from delayed migrations or paused migrations to live migrations. I can remember reading the technical papers coming out of, VMware and Microsoft and they were talking about the idea of, these deltas continually repeating the Delta process until you get down to zero or like you can fit it in a packet and then that's the final packet kind of thing.

I don't know why I remember that all these years later, but I do remember that I thought that was some pretty cool science, like some pretty cool, physics across the wire because back then we were lucky if our servers had one gigabit, 200 gig workloads or anything like that. this actually led me during my research and, we could talk about the idea that there are, there are attempts in Linux over the years to try to solve this universally. I did some research before the show and saw some projects around ML workloads in particular a lot of, engineers, whether it's platform engineering or just the ML engineers themselves interested in this because of the, sort of the problems of large ML or AI workloads today where you can't interrupt them if you interrupt them, you have to basically start over.

it's sort of a precious workload while it's running and it might be running long time. do you have, AI and ML workload customers where they're. Are they maybe part of the first movers to move onto something like this? I'm basing it on the KubeCon talks and things that I've seen out there, Large scale data analytics is definitely, one of the big players here.

A lot of it's spark driven data analytics that we're seeing, because of exactly that problem. A lot of these jobs will be running for 8, 10, 12, 14, 16 hours and. Running those on demand at the scale that they're running them at is extraordinarily expensive. So the big ask is how do we get those workloads onto spot instances where when we get the interruption notice we can fall back to some type of reserved capacity and then fail back to spot.

So basically the goal is to move to this new concept where in your Kubernetes cluster you have some swap space, whether that's, excess, spot capacity, two or three extra nodes of spot capacity or a couple of nodes of on-demand capacity where if you get a node interruption, you can quickly swap into those nodes, and then once you stand your new spot instance back up, then you can swap back to that spot instance. where we're headed. that's what Q4 is gonna be working on this year, is to be able to automate that entire process to where you can float back and forth between reserve capacity and spot capacity to really save on those, data analytics jobs, those large ML jobs.

We're not to the GPU side of things yet. I'd love to get us to where we could migrate GPU workloads 'cause that's where the next big bottleneck is gonna be. the hooks aren't there in the Nvidia tool sets yet for the Cuda tool sets in a lot of places, to be able to get what we need for data. we're figuring our way around that.

they tend to be much larger, so the time taken to move them very expensive. it might be 20 minutes to be able to move a job from one to the other. 'cause it took 20 minutes to get a startup up in the first place. just due to the size of the models and how much data you have to replicate.

we're starting to put some POC work into the GPU side of things while we're continuing on full steam with building out the expansion of the feature set of the CPG, and memory based workloads. Alright. Dan, I was curious if you've seen on, the implementation side of this. when we talk about.

the need to live, migrate a pod, whether it's for maintenance then the almost feel like the next level is the idea of spot instances, I love that idea of my infrastructure dynamically failing and my applications can handle it. is there a maturity level where you see people start out it's hard for me to imagine like on day one someone's like, yeah, let's just put it all on spot instances in yolo. let's just fi we don't care. It's all good.

Mi Live migration will solve it all. Because obviously, there are physics limits to the amount of data we can transmit over the wire. I'm imagining this scenario where you're. accrediting certain workloads, like this replica set is good for spot because it's low data.

we don't need to transfer a hundred giga data during a two minute outage or a two minute notice of outage. do you see that as a maturity scale where you have to Yeah. I mean, it is absolutely a maturity scale, right? kind of going back to the references we talked about, the early days of VMware, nobody started doing vMotion in production, everyone started it.

Oh, we've got this, five second interruption, development and test boxes can handle that all day long. so it's the same concept really that we're living in now. We're going through that same evolution. I agree with Phil.

I think we're doing it much faster than VMware did in 2002, 2003. I was around when that happened as well. So I remember racking and stacking all those boxes. but yeah, it's very much the same thing.

container live migration is brand new, we've just been GA for a month with it. So we've had conversations at trade shows and with customers and there's a lot of excitement around it. I think we're still trying to figure out where it fits, what are the exact workloads that it makes the most sense to do this in. And yeah, I think it's going to be a process of adoption.

there's definitely a lot of use cases. I think the spot is a very interesting use case, especially the large data models and things that we're processing today. I'm working with a customer now that's doing a lot of video processing in Kubernetes and that's a very, you know, CPN memory intensive job. I mean, you know, we're talking a cluster that scales from a D CPUs to 6,500 CPUs while they're processing this.

we're really trying to figure out where it makes the most sense to apply this type of technology. no one wants to have that kind of dynamic scale and then have to pay for reserved instances for all of that, like, worst case scenario. that sounds like a billing nightmare. and you don't want a job that runs for, you know, hours that cost you tons of money to fail 80% through and have to restart it I mean, that's just not efficient.

So, yeah, I think the ability to really move this and allow those workloads to finish is gonna be. Huge for the market. Alright, so we have been talking a lot about the problem and some of the solution. we do have some slides that give visualizations for those on YouTube.

this will turn into a podcast. So audio listeners, we will give you the alt text, version of it while we're talking about it. But, Philip, I'm Exactly what is happening and the process of how a live migration, like how does it kick off? what's really going on in the background when it starts, Absolutely.

and we do have some better demos other places. I think on the website. basically what we have is a live migration controller looking across all the workloads and nodes that are lab migration enabled. You don't necessarily have to turn this on for everything.

You've got all your stateless workloads, you don't need to live migration, stateless workloads, just treat them as normal. You've got your stateful workloads that you do want this to use for, so you could set up a specific, you know, node group for that. that's gonna allow you to select what you actually want to do live migration for. You could use it for everything, but it just eats up more network bandwidth if you're using it for the stuff that already tolerates being moved.

that controller's gonna be looking for different signals within the cluster of when something needs to be live, migrated. instance, interruption is a good one. being able to do bin packing, evicting a node from the cluster because it's underutilized, and then migrating those workloads to another node in the cluster. what we call rebalancing.

basically, rebuilding the cluster with a new set of nodes. And that could be because you're doing a node upgrade, you're doing a Kubernetes upgrade, you're doing an OS upgrade, you're just trying to. Get a more efficient set of nodes. all of those are good reasons that you would want to do your live migration.

So what's gonna happen in that process is the two daemon sets on the source node and the destination node are gonna start talking to each other. They're going to look at the pods on the source node, start synchronizing them over to the destination node. So behind the scenes, all of that kind of memory is being copied over any disc states being copied over any TCP/IP connection statuses are being copied over and you're doing all that prep work behind the scenes. If you have, ephemeral storage, on the node that'll start getting copied.

Obviously, depending on how much, it's gonna depend on how long it takes. Once the two nodes have identical copies of the data, that's when the live controller will say, it's time to cut over it will cut the. Connections from one, pause it and put it into a pause state in containerd, then it will unpause on the new node. It'll come up with a new name.

Right now we call 'em clone one, clone two. We just add clone to 'em. So you can tell which was the before and which was the after. when that clone one unpause, then traffic will be going to it.

It'll have the same exact IP address that it had while it was on the previous node. All the traffic continues onto that node. It picks up exactly where it left off, and the old pod disappears, right? The old pod gets shut down and torn down if you have something like a PVC attached.

So if you've got an E-B-S-P-V-C attached, there is a longer pause because you have to do a detach reattach. with the API calls, it works. It just takes a little bit longer for that pause state. That's The downfall of having to work with, APIs.

it takes time to do an unbind rebind, to the new node. but it works today. If you're using NFS where you can do a multitask, then it's instant, it doesn't actually add any delay. just NFS is a slower storage technology.

So does that sort of make sense from a high level? Yeah. when we talk about Cast AI as a solution, it do live migrations based on certain criteria? Is it making decisions around, if you say I want a bin pack all the time, it in the background, is it just like doing live migrations on your behalf?

Or is this something where you're largely doing it with humans clicking buttons and controlling the chaos. No, this goes back to what we had talked about at the beginning where, automation is key. when a node is underutilized, our bin packer is, probably the most sophisticated on the market. It analyzes and runs live tests on every node in the cluster of whether that node can be deleted, whether that node doesn't need to be there anymore.

And it'll simulate all the pods being redistributed throughout the cluster. if the answer is we don't need this node, it would automatically kick off a live migration of all the pods on that node Once it's empty, it'll just get garbage collected. once it's gone, all your pods are running on the new nodes. Everything's moved seamlessly.

You haven't seen any interruption. the cluster keeps continuing as normal. Most of our customers do scheduled rebalances, so those are just in the background. It's evaluating how efficiently designed the nodes in the cluster are.

If the nodes in the cluster are. Not as efficient as they could be, and different shapes and sizes would be better for, that setup at that point in the day, based on the mixture of workloads there, it'll do a blue-green deployment, set up new nodes live, migrate the workloads to those new nodes and tear down the old ones. So everything that we're talking about here can either be scheduled or it's automatic. It's running every few minutes on a cycle.

but yeah, no, it's entirely seamless to the users. Nice. So in the technical details, we're moving the IP address, I think you had a diagram, showing the pod, on the nodes, when we get down to the nitty gritty of Kubernetes level stuff, pod is recreated, but pod names have to be unique you can't have the IP on both nodes at once. And then there's the difference between TCP and UDP and other, you know, IP protocols and the, there's a lot of little devils in the details that I'm super interested in.

We won't have time to go into all of it, but I do remember you showed the replica, the pod that you're creating, step one is we create a pod and download an image, right? this is all still going through containerd. So it's not, there's not like voodoo magic in the background happening outside of the purview of containerd. maybe you can talk about that for a minute Right, Exactly.

So being by changing the pod name, you now have a. Placeholder for your new pod information to go into. And it does maintain the same IP address when it moves over from one to the other. So to your point, that's when that switch has to kick in where the old pod definition disappears.

And the new pod definition appears in your, control plane with the API calls up to the coop API. that cutover is extremely important because you can't have the same pod living in the same place twice. that's why we do have to change a name when we switch it over. there's certain services that, cause some tricks because they have an operator structure where they expect there to be a certain pod name.

So when you move it and add the clone suffix to it, we're working on finding workarounds to that, in certain areas. that is a little bit tricky on certain workloads because you can't have the same pod existing with the same name in two different spots. They have to be unique. but yeah, definitely.

the IP is the same, but the pod name is gonna have a clone dash one or something like that on it Yep. yeah, so it starts with your pod and then there's an event that happens outside of the pod that is talking into, containerd and you're It's a second pod. Correct. It's adding that placeholder.

And because the placeholder pod is actually still in a paused state. It can have the same IP address. it's not actually routing traffic to it, 'cause it's not an active pod yet. it'll be in a staged state.

So you stage it up with all the information, but it has to be named differently. And then when you do the cutover, that's when you switch it from being inactive to active and switch the old pod to be inactive. and that's the final stage when, the clone pod becomes the primary. And because it's maintained the exact, IP address within the system, it's not losing any traffic.

So the networking system within Kubernetes routes it to the new node and the routing tables are updated and the pod goes to the new destination. Yeah, that does sound like the hard part of like the old pod is shut down so the IP can be released. I assume the IP. Can't be taken out while that old pod is still active.

it's one of these things where it's like, I understand it at the theory level, but I have no idea what containerd and coup proxy and, all these different things that are binding to a virtual interface and the order of the things that have to happen in the exact right sequence in order for you to first assign that IP to the new node and then also replay all the packets. it does seem like a very discreet order of things that have to happen. it has to go in a certain order or they're just all fail it feels like.

so that's the part that took us about a year to figure out. there had been a lot of studies and some research papers around, the moving of memory and the snapshotting of different workloads. Like that part was a little bit more straightforward because it was really out of the vMotion playbook days, from early on. there were also some college studies around using cryo to replicate and migrate containers.

None of them had been able to solve the IP side of things, the connectivity side of things. that's what Cast AI was able to solve for. and it took a lot of research, took a lot of, in-depth work. We started on this, early 2024, with a team of about five engineers, deep kernel level Linux engineers, Kubernetes engineers, people very familiar with the, code.

they contributed to the Kubernetes open source project, it was. 10 months before we had a demo and that was using Calico. before we could demo, we had to have a custom AMI at that point in time in AWS because everything was kernel level at the a MI level. we knew that was not feasible going forward to production, but that was the first demoable version Like anything else, There's a lot of warts and vaporware in the first version.

since then we were able to move the logic up to a containerd plugin makes it a lot more portable. Now it can be applied to different clouds. It's much less invasive. You don't need a specific AMI.

and under the hood anymore, we were able to move it to the A-W-S-V-P-C-C-N-I. So you don't need the custom Calico CNI. all of those were iterative steps to build this and make it more, production viable and adoptable by the industry. Now it's a matter of, we've got kind of two forks going on.

One is continuing to build out additional platforms, figuring out cilium, figuring out Azure, CNI, The other is performance tuning the existing migrations, reducing time to migrate, being able to reduce the size of the deltas down further and further so we can migrate it faster and faster. so we've got kind of those two tracks right now. the team's up to I think 10 or 12 engineers. kind of working on those two paths, and this is probably one of our most heavily invested, areas in the company is being able to further this technology.

'cause we see how much value it brings. Yeah, I imagine it won't be very long where, you know, this technology is pretty advanced, but like others eventually will probably if it's truly the thing that we all are looking for. And it sounds like, it feels like it is, it feels like the kind of, tooling where it's a hard problem to solve and we'll maybe see other people attempt to do it. I mean, the.

the research I had to do for the show. 'cause I was very curious. I was like, what's the history of all this? And we, someone mentioned Sierra IU, which I believe you're using at least some of that.

that's a project that's been around for quite some time over a decade. And it's not a new idea, but like a lot of these other technologies, the devil's in the details. we never really had an ability, to capture and understand what a binary's true dependencies were, whether it's disc or, networking things. until we had containers you mentioned on here like it's in LXC, it's in Docker, it's in pod man, like this actually tool is used widely.

it's just maybe not, well known to us end users because it's packaged as a part of other tooling. And I can sort of see a world where. if this becomes more widespread, you're gonna end up with haves and have nots where my solution doesn't have live migration or my solution does have live migration at some point, maybe it's ubiquitous, you're building functionality on top of it, like your automation that truly adds value around, spot instances where my company maybe has never done spot instances because it was too risky for us and we didn't have the tooling to take advantage of it without risking downtime.

I definitely have a couple of clients that I've worked with over the last couple of years that are like that, where they're a hundred percent reserved instances because they want the cheapest, but they also need to guarantee uptime. And they can't do that at a level that live migrations would provide. So they have to pay that extra surcharge, for avoiding, ephemeral instances and stuff like that. to me, it gives me comfort that the technology stack.

is part open source, part community driven. there's also the product, and private IP side of this as well, but it's not like you're reinventing the Linux kernel. It wouldn't have been that long ago where you had to actually throw in a Linux module or kernel module rather, that would only work on certain operating system distributions of Linux and that you would have to deploy a custom ISO that wasn't that far in the past. But now that we've got all these modern things, I don't know if EBPF is involved in this at all, but we've got more modern abstractions that it feels like you can just plug and play as long as you've got the right networking components.

From an engineering perspective, pretty awesome because it allows you to build stuff on the stack like this. the team's not on the call, but the team that's developing this, good job, Bravo, that's, some great engineering. obviously anytime something is a year long effort to crack a nut like this, I feel sad for the people that had a six month, like, no one's gonna see this feature for a year and I'm gonna work all year on it and I hope someone likes it. So that's from a software development perspective, that's the hard part.

That's the true engineering. Um. Yeah, absolutely. we could talk about this forever, but people have their jobs to do.

okay. How do people get started do they just go sign up for Cast AI and this is like a feature outta the box that they can implement in their clusters or. Yep, absolutely. it's in the UI now, so if people want to sign up and onboard, we do recommend having somebody on our sales engineering team work with folks.

So reach out to us, We'll also reach out when people sign up as well. it's all straightforward. There's no caveats. It's helm charts to do the install and then you set up the autoscaler.

we will be adding support for Karpenter today. It's using our autoscaler, but we will support Karpenter. around end of Q4 or early Q1, Yeah, that's great. my usual co-host is with AWS, so they would greatly appreciate that.

I know that over the last year, Karpenter's been out, a little over a year. We've had, a surprising number of people on our Discord server. For those of you watching, there's a Discord server you can join. There's a lot of people on Discord talking about using Karpenter.

I'm really impressed with the uptake on that project. And in case you're wondering what Karpenter is, it's with a K and it's for Kubernetes, you can look on this YouTube channel later because we did a show on it and has had people talking about it on the show and demoing it. whenever it was released. I think that was 2024.

I can't remember exactly. alright, so everyone knows how to get started. Everyone now knows that they wish they had live migrations and they currently don't unless they're a Cast AI customer. Where can we find you on the internet?

Where can people learn more about what you're doing? Are you gonna be at conferences soon? I'm assuming, cast is probably gonna have a booth at KubeCon again. They always seemed to have a booth there.

we've got a big booth at KubeCon this year. I think we've got a 20 by 20. We're gonna be doing demos and presentations in the booth. this is gonna be a big part of that.

we'll also be at reinvent in Vegas. In later, early December, I guess is first week of December. so I'll be at both of those events. I'm also really active on LinkedIn, so if anybody wants to reach out to me on LinkedIn, if you wanna set up a session just to go into more detail, feel free to ping me I post a lot of Kubernetes content in general, best practices, things that we see in the industry from a Kubernetes evolution side of things, and also obviously a bunch of cast stuff.

so, you know, feel free to follow or connect Happy to share more information Awesome. well, I'm looking forward to hearing about that continual proliferation of all things live migration on every possible setup. someday it'll be on FreeBSD with some esoteric, Kubernetes variant. It's, pretty cool to see the evolution of this.

Well, thank you both for being here, Philip and Dan. see you all later. Ciao. Thanks for watching, and I'll see you in the next episode.

Related episodes across the Index

Other episodes covering the same guests and topics, from across The B2B Podcast Index.

  • From Compliance to Catalyst: How Parexel’s CIO Builds for ImpactWhat's New In Data · on Kafka82 / 100
  • Optimizing Cloud Costs for SaaS StartupsSaaS for Developers · on Kafka71 / 100
  • Holding Kafka Right: Product-Friendly Streaming with TypeStreamData Engineering Podcast · on Kafka69 / 100

More from DevOps and Docker Talk: Cloud Native Interviews and Tooling

All episodes →
  • K8s Maxxing with AI-Native Platform Engineering Stack with OpenChoreo59 / 100
  • Docker AI, what’s new with MCP, Agents, Sandboxes, and more85 / 100
  • Backup S3, Google Drive, iCloud, Notion with Plakar87 / 100
  • Your Images are Out of Date (probably) - The Silent Rebuilds problem81 / 100
  • AI Wins and Misses for 202580 / 100
Explore the best B2B Engineering & DevTools podcasts →
All DevOps and Docker Talk: Cloud Native Interviews and Tooling episodes →