Although being familiar with Kubernetes concepts is recommended, the necessary concepts to grasp before installing a MetalK8s cluster are presented here.
Nodes are Kubernetes worker machines, which allow running containers and can be managed by the cluster (control-plane services, described below).
Control-plane and workload-plane¶
This dichotomy is central to MetalK8s, and often referred to in other Kubernetes concepts.
The control-plane is the set of machines (called nodes) and the services running there that make up the essential Kubernetes functionality for running containerized applications, managing declarative objects, and providing authentication/authorization to end-users as well as services. The main components making up a Kubernetes control-plane are:
The workload-plane indicates the set of nodes where applications will be deployed via Kubernetes objects, managed by services provided by the control-plane.
Nodes may belong to both planes, so that one can run applications alongside the control-plane services.
MetalK8s uses five different roles, that may be combined freely:
masterrole marks a control-plane member. Control-plane services (see above) can only be scheduled on
This role marks a workload-plane node. It is included implicitly by all other roles.
infrarole is specific to MetalK8s. It serves for marking nodes where non-critical services provided by the cluster (monitoring stack, UIs, etc.) are running.
This marks the Bootstrap node. This node is unique in the cluster, and is solely responsible for the following services:
An RPM package repository used by cluster members
An OCI registry for Pods images
In practice, this role will be used in conjunction with the
etcdroles for bootstrapping the control-plane.
Taints allow dedicating Nodes to specific use-cases, such as having Nodes dedicated to running control-plane services.
A MetalK8s cluster requires a physical network for both the control-plane and the workload-plane Nodes. Although these may be the same network, the distinction will still be made in further references to these networks, and when referring to a Node IP address. Each Node in the cluster must belong to these two networks.
The control-plane network will serve for cluster services to communicate with
each other. The workload-plane network will serve for exposing applications,
including the ones in
infra Nodes, to the outside world.
MetalK8s also allows one to configure virtual networks used for internal communications:
In case of conflicts with the existing infrastructure, make sure to choose other ranges during the Bootstrap configuration.
In this guide, the depicted installation procedure is for a medium sized cluster, using three control-plane nodes and two worker nodes. Refer to the Installation Guide for extensive explanations of possible cluster architectures.
This image depicts the architecture deployed with this Quickstart guide.
describe architecture schema, include legend
improve architecture explanation and presentation
The installation process can be broken down into the following steps:
Setup of the environment (with requirements and example OpenStack deployment)
Expansion of the cluster from the Bootstrap node
Include a link to example Solution deployment?