Deep Dive: Deploying Kubernetes on Bare Metal Using the Cluster API
2019-05-18, 17:15–17:45, Main Hall

Relative to cloud infrastructure, bare metal environments are more varied and do not expose a unified API. The Cluster API unifies infrastructure management with Kubernetes-native resources, but our previous attempts to use it in bare metal environments show that actuators alone have significant limitations. Kubernetes webhooks offer an alternative that separates the provisioning of Infrastructure from the deployment of Kubernetes, while keeping the declarative model and common tooling provided by the Cluster API.

Today, the Cluster API project has provider implementations for a variety of cloud environments. Users are interested in using the Cluster API to operate clusters in heterogeneous bare metal environments. While machine provisioning varies widely across these environments, software provisioning remains largely the same. Because of this commonality, the cost of maintaining a separate provider for each environment outweighs the benefits.

Attendees will learn how a single Cluster API provider can be used to operate clusters across different bare metal environments. We will show how to implement a webhook to provision machines in a bare metal environment, and how to integrate it with the Cluster API provider. We will also explain in depth the challenges of deploying Kubernetes in a uniform way across different environments using existing tooling (e.g. kubeadm).