Skip to main content

How Sealos Run Works

Below is a detailed explanation of how the sealos run command works. To aid understanding, we break it down into nine main steps.

1. Execution of Command

Firstly, users launch Sealos by executing the following command:

sealos run kubernetes:v1.23.8

2. Execution of Pipeline

After the command is executed, Sealos starts to execute a series of related operational steps, which we call the "Pipeline". This process includes the following substeps:

2.1 Node Check

Sealos will check all nodes to ensure they are available. For example, checking for duplicate hostnames, and whether the time of all nodes has been synchronized.

2.2 Pulling Images

Next, Sealos pulls the Kubernetes images from the remote repository and loads them into local storage.

2.3 Configuration Rendering

Then, Sealos renders the configuration of the pulled image's rootfs (file system) to prepare for the subsequent node distribution.

2.4 Distribution of Image Files

Once the configuration rendering is complete, Sealos distributes the rendered rootfs files to each node.

2.5 Distribution of Registry Directory

In addition, Sealos also distributes the registry directory in the image to the corresponding registry role nodes. Sealos supports two modes:

  • scp mode: Directly copy the directory to each node via scp, which consumes a lot of network bandwidth.
  • Image synchronization mode: Using the skopeo sdk's image synchronization mechanism, incremental image synchronization can be achieved to save network bandwidth. This feature can be enabled with the environment variable SEALOS_REGISTRY_SYNC_EXPERIMENTAL=true.

2.6 Execution of Bootstrap

Bootstrap is a crucial step, including the following operations:

2.6.1 Addition of Host Resolution

Sealos adds host resolution for the registry on each node.

2.6.2 Execution of Registry-Init Script

After adding host resolution, Sealos executes the registry-init script.

2.6.3 Execution of Init Script

Finally, Sealos executes the init script to start the Kubernetes service.

3. Execution of InitMaster0

After the Pipeline execution, Sealos enters the InitMaster0 phase. In this phase, Sealos performs the following operations:

3.1 Generation of Kubeadm Configuration

Firstly, Sealos generates the initialization configuration file for Kubeadm.

3.2 Generation and Distribution of Certificate Files

Then, Sealos generates all certificate files for the cluster and distributes them to each node.

3.3 Initialization of Master0

Finally, Sealos executes kubeadm init to initialize the Master0 node.

4. Execution of JoinMaster

After the initialization of the Master0 node, Sealos enters the JoinMaster phase. In this phase, Sealos performs the following operations:

4.1 Synchronization of Kubeconfig

Firstly, Sealos synchronizes the Kubeconfig file to each node.

4.2 Synchronization of Certificate Files

Next, Sealos synchronizes certificate files to each node.

4.3 Generation of Join Configuration

Then, Sealos generates the JoinMaster configuration file.

4.4 Generation of Join Token

Next, Sealos generates the Join token.

4.5 Execution of Join Master Process

Finally, Sealos executes the kubeadm join process to add other Master nodes to the cluster.

5. Execution of JoinNode

After all Master nodes have joined the cluster, Sealos enters

the JoinNode phase and performs the following operations:

5.1 Generation of Join Token

Firstly, Sealos generates the Join token again.

5.2 Generation of IPVS Rules

Then, Sealos generates IPVS rules.

5.3 Generation of Join Configuration

Next, Sealos generates the JoinNode configuration again.

5.4 Execution of Join Node Process

Finally, Sealos executes the Join Node process to add Worker nodes to the cluster.

6. Synchronization of IPVS

After all nodes have joined the cluster, Sealos synchronizes the IPVS rules of the Master to all nodes. This is mainly done through the lvscare static pod, which synchronizes the static pod configuration based on the number of Master nodes.

7. Execution of Guest Phase

After the IPVS rules are synchronized, Sealos executes the Guest phase. This is the stage to execute the cluster image command.

8. Writing to the Clusterfile

Finally, Sealos writes the final execution result to the Clusterfile.

This is how the sealos run command works. Through this article, we hope that you have a deeper understanding of the sealos run command. Below is the panorama we mentioned to help you better understand the entire process.