»MetalK8s: An opinionated Kubernetes distribution with a focus on long-term on-prem deployments«
2019-05-05, 16:00–16:50, Room A

In this session we discuss why Scality decided to use Kubernetes as the platform underlying its on-premise storage and data-management solutions, why we started the open-source MetalK8s project, the lessons we learned from the first iteration, and most importantly what's coming in the next major version.

End of 2017, Scality decided to use Kubernetes as a deployment mechanism for its open-source Zenko data-orchestration solution. When looking for a solution to deploy Kubernetes on-premise, including suitable operational tooling and the ability to run in enterprise customer data centers, we failed to find a readily-available suitable offering based on our long experience with these environments, neither open-source nor commercial. At this point, the decision was made to create a new distribution based on the well-known Kubespray project, but further focusing on on-premise, long-term clusters with built-in operational tooling, and make this available as an open-source project, also spearheading open-source development practices within the company.

Based on the learning building and deploying MetalK8s 1.x, we took the decision to base deployment and operations of our future products on Kubernetes as well, increasing the importance of Kubernetes as an 'implementation detail' of the final product running in our enterprise customer datacenters. At this point, we further increased investments into MetalK8s, and also take the opportunity to change its architecture based on some shortcomings identified in MetalK8s 1.x.

After introducing our path to Kubernetes and an overview of the goals of the project, we discuss what MetalK8s 2.x brings compared to the 1.x version, including the architectural switch from 'one-off' Ansible playbooks to a more dynamic, event-driven cluster orchestrated through SaltStack, as well as a glimpse at its local storage (disks, RAID controllers,...) management features, and how these resources are made available to solutions deployed in the cluster.