Putting Kubernetes in Space!
SUSE RGS’s (Rancher Government Solution), Kubernetes Edge Architect (Chris Nuber) and Hypergiant’s Space Systems Architect (Chris Tacke & Brenn Briggs) together are trying to achieve the impossible in the most hostile environment of all — Putting Kubernetes clusters to work in orbit on military satellites for the very first time!
But why?
Some of the reasons -
- In their existing workflow, containers were built and shipped like virtual machines (VMs) — updated and managed in Puppet. Managing multiple Docker containers was a problem and with a growing need for consistency, it soon became a pain point.
- Space related hardware is costly. Software development and delivery processes are slow. On-orbit satellite software updates are often not possible or incredibly time-consuming and expensive. As a result, AI/ML capabilities are far behind than those currently available on earth.
- Satellite connectivity and bandwidth are poor, which makes downloading large images and other data difficult.
All these & others led with a need for a platform that would allow developers to deploy repeatable patterns with less manual effort. Need was felt for a platform that could run anywhere, and that led to Kubernetes as a way to automate the creation of repeatable workloads.
Value that Kubernetes brought onto the table
In early 2020, the team started rolling out Kubernetes on several internal systems. As they ran on AWS, EKS was initially deployed to orchestrate the first cluster, but soon, K3s entered the team’s consciousness.
Some of the reasons for the same were -
- K3s was designed as a lightweight, compact version of Kubernetes that could run in remote, low-power, hostile environments.
- Available ‘off the shelf,’ K3s was easy to install and it avoided the need to ‘roll their own’ lightweight distribution.
- Deploying a cluster takes just a day using K3s, compared to weeks in a manual methodology.
- The cluster itself builds in 10 minutes using Ansible plays.
- Provisioning base services takes another 30 minutes.
- K3s reduce the dependencies and steps needed to install, run and auto-update a production Kubernetes cluster.
Deploying K3s to achieve the impossible
In the proposed cluster architecture, there are two independent K3S server nodes in place. This is critical should one server device fail in orbit — the team can quickly communicate with the server node, automatically failover, or run scripts to rebuild the cluster in a matter of minutes. Since the clusters are logically separated, all the K3s images and the application workloads are stored locally on each node — less overhead and one less point of failure.
Additionally, the two master nodes have an ethernet adapter attached to have connectivity to the external network, allowing communication with the ground.
The Future!
The initial mission is an important one — to take a picture of Baby Yoda.
While this doesn’t sound particularly groundbreaking, this exercise’s primary purpose is to demonstrate the ability to capture images and perform AI and ML workloads at the edge in the space!
By proving these basic processes work, the team can highlight the use case for Kubernetes in orbit.
Industries of all kinds that rely on satellite communications and imaging want to create modern satellite fleets that can be used for longer and have less environmental impact. By deploying compute technologies, like K3s, on orbiting devices, their longevity and ongoing usability are assured.
Working with K3s, Hypergiant, Rancher Federal and DOD PlatformONE are creating a commercial future for data processing in space and Kubernetes is in the heart of this mission!