Files
org-notes/nanometal/k8s-concept-review.org
Adam Mohammed 12cf3967ee moar
2023-10-30 15:31:17 -04:00

48 lines
2.3 KiB
Org Mode

#+TITLE: K8s concepts review
#+AUTHOR: Adam Mohammed
#+DATE: September 18, 2023
At one of the meetings I brought up how similar nano-metal felt to a
collection of K8s specifications that make standing up and managing
K8s clusters easier. In this document I'll cover the following topics
at a high level: Cluster API, CNI, CCM, and CSI.
First is the Cluster API, this came about as a means for creating and
managing kubernetes clusters using kubernetes it self. The cluster API
allows an operator to use a so-called "management cluster" to create
other K8s clusters known as "Workload clusters." The cluster API is
NOT part of the core K8s resources, but is implemented as a set of
custom resource definitions and controllers to actually carry out the
desired actions.
A cluster operator can use the cluster-api to create workload clusters
by relying on 3 components: bootstrap provider, infrastructure
provider, and the control plane provider. Nanometal aims at making
provisioning of bare metal machines extensible and scalable by
enabling facilities to carry out the desired operations requested by
the EMAPI. We can think of the EMAPI as the "management cluster" in
this world.
What Metal has today, maps well to the infrastructure provider, since
all the cluster-api has to do is ask for machines with a certain
configuration and the provider is responsible for making that
happen. I think for this project a bulk of this work is figuring out
how we make the infrastructure provider out of our existing
components, but let's put that aside for right now and consider the
rest of the components.
The bootstrap and the control plane providers are concepts that also
seem important to our goal. We want it to be simple for us to enter a
new facility and set up the components we need to start provisioning
hardware. The bootstrap provider, in the cluster-api concepts turns a
server provisioned with a base OS into an operating K8s node. For us,
we probably would also want some process which turns any facility or
existing datacenter, into an equinix metal managed facility.
Once we know about the facility that we need to manage, the concept of
the control plane provider maps well with the diagrams from Nanometal
so far. We'd want some component that installs the required agent and
supporting components in the facilty so we can start to be able to
provide metal services there.