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.

Nicolas is a senior architect in the Scality R&D team, focusing on defining and designing delivery, installation and operability of cloud-native solutions. He has a background in cloud, distributed systems and automation for 10+ years, and is a long-term Open Source contributor to various projects in multiple stacks. Startup-minded, Haskell’ist and music lover.

Nicolas has spoken at OpenStack Summits, OUD, KubeCon/CloudNativeCon and various other occasions, and is the co-author of ACM RELENG and ICFP papers.

Twitter: @eikke
GitHub: NicolasT