K8s-based Migration #146
l-monninger
started this conversation in
Ideas
Replies: 3 comments 4 replies
I am guessing quite a few--more than 16 times in non-local, e2e environments. This is mainly because it will probably take a lot attempts in different environments to get it right and ultimately we can't really risk doing this without have tried it many times. |
0 replies
Maybe we don't have K8s for
|
4 replies
|
Would be good to have your comments here. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Summary
mtmais written s.t. it should be possible to simply place a container (as enabled under #143)--with the appropriate access to disk, services, and similar resources--and migrate withmtma checked-migration migrate select --all-required.Below I propose a progressive model to begin the discussion of how this K8s-based migration could be structured.
Tip
Here are some good articles on various similar projects:
These are job-based. However, because of
trackingfeatures, traffic switching, and manual supervision, it may make more sense for us to place a pod with a continuously operatingmtma checked-migration migrate select --all-requiredprocess, then replace this once the migration has been validated, i.e., withhelm upgrade.Note
This does not include considerations for traffic mirroring and
tracking. It is assumed traffic mirroring is handled at the K8s control plane and above, whiletrackingwould be handled withinmtma.Simple Volume-only
mtmaPodAt the time of writing, it seems it may be feasible to complete the migration by simply sharing access to the persistent volume, via
ReadWriteManyamongstmovement,mtma, andmovement-aptospods. That is, there many not be a need for additional migration-specific services to be shared amongst these pods--only the volume and the public APIs.This model would looks as follows:
Volume and Migration Control Plane
In the event we determine bespoke services are need to manage the migration, the model becomes slightly more complex, but still manageable through a fairly simple model of pod placement:
Important
The Migration Control Plane here does not refer to the K8s control plane under which the
mtmapod is allocated. Instead it would simply refer to the bespoke services, service discovery, and special pods which may allow a migration to run gracefully.Migrating the Current
movementNetwork to K8sIn order for any of these K8s-based migrations to be possible, we would need to ensure the existing network and its volume are migrated to resources usable within K8s (EKS). As such, a plan for the migration of the existing EC2 volume is needed; it may look something like the below:
K8s End-to-end
In total, the e2e of the migration in K8s may take a form similar to the following:
Discussion Points
checked-migrationoutcomes?All reactions