github.com/alibaba/sealer@v0.8.6-0.20220430115802-37a2bdaa8173/docs/site/src/zh/advanced/architecture.md (about)

     1  # Architecture
     2  
     3  ![](https://user-images.githubusercontent.com/8912557/133879086-f13e3e37-65c3-43e2-977c-e8ebf8c8fb34.png)
     4  
     5  Sealer has two top module: Build Engine & Apply Engine
     6  
     7  The Build Engine Using Kubefile and build context as input, and build a CloudImage that contains all the dependencies.
     8  The Apply Engine Using Clusterfile to init a cluster which contains kubernetes and other applications.
     9  
    10  ## Build Engine
    11  
    12  * Parser : parse Kubefile into image metadata
    13  * Registry : push or pull the CloudImage
    14  * Store : save CloudImage to local disks
    15  
    16  ### Builders
    17  
    18  * Lite Builder, sealer will check all the manifest or helm chart, decode docker images in those files, and cache them into CloudImage.
    19  * Cloud Builder, sealer will create a Cluster using public cloud, and exec `RUN & CMD` command witch defined in Kubefile, then cache all the docker image in the Cluster.
    20  * Container Builder, Using Docker container as a node, run kubernetes cluster in container then cache all the docker images.
    21  
    22  ## Apply Engine
    23  
    24  * Infra : manage infrastructure, like create VMs in public cloud then apply the cluster on top of it. Or using docker emulation nodes.
    25  * Runtime : cluster installer implementation, like using kubeadm to install cluster.
    26  * Config : application config, like mysql username passwd or other configs, you can use Config overwrite any file you want.
    27  * Plugin : plugin help us do some extra work, like exec a shell command before install, or add a label to a node after install.
    28  * Debug : help us check the cluster is healthy or not, find reason when things unexpected.
    29  
    30  ## Other modules
    31  
    32  * Filesystem : Copy CloudRootfs files to all nodes
    33  * Mount : mount CloudImage all layers together
    34  * Checker : do some pre-check and post check
    35  * Command : a command proxy to do some tasks which os don't have the command. Like ipvs or cert manager.
    36  * Guest : manage user application layer, like exec CMD command defined in Kubefile.