48 lines
2.3 KiB
Org Mode
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.
|