KubeMove: Move Data Across Kubernetes Clusters Without Proprietary Extensions

A new project initiated by the folks behind OpenEBS seeks to provide a code base that would allow Kubernetes users to move data freely across clusters. KubeMove includes a Kubernetes Operator and API.
“Users want to simply move data from cluster A to cluster B,” said Evan Powell, CEO of MayaData, which oversees the open source OpenEBS container storage software.
Last month, Google Cloud introduced Anthos last month, which is a managed Kubernetes service that included the ability to move data across different clusters. This alarmed Powell and his colleagues, spurring them into creating KubeMove. At present, Kubernetes itself, which initially created by Google, does not yet have a mechanism for migrating data across different Kubernetes clusters, though that issue is being addressed by the Kubernetes Federation Project.
As the ecosystem around cloud native computing grows ever more complex, the initial appeal of Kubernetes as a tool to run workloads in the cloud without proprietary cloud provider extensions could erode, as organizations turn to managed services such as Anthos, Powell said.
“That’s fine, that’s their decision,” Powell said of Google’s Anthos. “But it risks disappointing users. If they think of Kubernetes as a get-out-of-jail card [from proprietary services], and then they find out these pieces around moving the data are proprietary.” Compare this approach to the Container Storage Interface (CSI), which standardized way for Kubernetes to interact with storage for providing snapshots, recovery and other capabilities required across the industry.
KubeMove’s basic capabilities include:
- The ability to move applications between on-prem and cloud or one cloud to another.
- Move legacy data onto Kubernetes clusters.
- Set the stage for application for upgrades of Kubernetes and other applications.
KubeMove works from the kubectl command line:
1 |
kubectl km move init <app> <kubemove-template.yaml> |
1 |
kubectl km status <movepair-cr> |
1 |
kubectl km move switch <movepair> |
Because KubeMove is a new project, Powell is hoping to attract more outside contributors. Thus far, the project has garnered 18 stars on GitHub, with 35 commits from two contributors. Eventually, Powell would like to see KubeMove accepted in the upstream Kubernetes codebase, so that it would be a standard Kubernetes command. KubeMove was released under the Apache 2.0 license.
Storage Virtualization
Last week, the Cloud Native Computing Foundation accepted MayaData’s OpenEBS as a Cloud Native Sandbox Project. MayaData describes OpenEBS as “container-attached storage,” offering the ability to provide stateful storage to container-based operations.
With OpenEBS, each container is provided with a dedicated storage controller, which enforces granular storage policies and isolation. OpenEBS runs in userspace and does not have any Linux kernel module dependencies, according to the docs.
OpenEBS is often used in conjunction with Kubernetes deployments and is used by companies such as Adobe, Cisco, IBM, NuoDB, ActivEngage, Streetline, and others. Wirpo uses the software as part of its announced a multicloud management solution, as does Red Hat for RedHat OpenShift.
Attendees of KubeCon + CoudNativeCon Europe more information on both of these projects, stop by booth SE41 in the KubeCon Expo Hall. The company will also be showing off its soon-be-released MayaData OpenEBS Enterprise, which includes support for NVMe over TCP.