OS Deployment concepts
Confluent supports a number of mechanisms for operating system deployment, with various benefits and drawbacks.
Scripted install (stateful/diskful)¶
The quickest to get started with is scripted install. When importing OS install media, starting points for such profiles will be generated. This approach leverages the OS deployment automation supported natively by the provider of the operating system. The following technologies are supported:
| OS | Mechanism |
|---|---|
| Red Hat and similar | Kickstart (Anaconda) |
| Ubuntu | cloud-init (Subiquitiy) |
| SUSE | Autoyast |
| Debian | Debian-Installer |
| VMWare | Kickstart (Weasel) |
The benefits of this approach are:
| Benefits | Drawbacks |
|---|---|
|
|
Image approach¶
For many platforms, Confluent further supports an 'image' based approach goverened by 'imgutil'. This approach works with chroot-style directory trees or cloning to maintain an image.
Generally speaking, the benefits and drawbacks of an image based approach are:
| Benefits | Drawbacks |
|---|---|
|
|
Constructing and maintaining images¶
Within the scope of image based OS deployment, there are two ways of constructing/maintaining images:
-
imgutil build- This uses the OS package repository to create a 'chroot' style packaging of the OS. This is the most trivial to get going and modify.imgutil execprovides a mechanism to containerize modifications to bring the environment as close as possible to acting the same as on a real node.imgutil packandimgutil unpackcan be used to prepare such images for deployment or another iteration of modification, respectively. -
imgutil capture- This uses an existing node as a golden reference and creates an image from it. This permits the greatest ability to model the full scope of a node install on real hardware including behavior of drivers with the real hardware and partitioning, but is more complicated and time consuming to modify compared to thebuildapproach above.
Image deployment methods¶
With an imgutil managed profile, there are three approaches to deployment, selected by editing the profile.yaml file in /var/lib/confluent/public/os/{profile} and modifying the kernelargs:
installtodisk (stateful/diskful)¶
installtodisk- This will write the image to hard disk similar to a scripted install and applypostandfirstbootautomation in a similar way. In addition to more trivial inclusion of third party content compared to a scripted install, this approach tends to be much quicker than scripted installers.
| Benefits | Drawbacks |
|---|---|
|
|
tethered (statelite)¶
confluent_image=tethered- This will instruct the OS to boot with HTTPS-as-root approach. This results in memory consumption similar to installing from disk, but without actually using local disk in the process. In a confluent collective architecture, this remote root filesystem is given multipath capabilities, allowing continued functionality if one confluent member goes down. Benefits and drawbacks of this approach are:
| Benefits | Drawbacks |
|---|---|
|
|
untethered (stateless/diskless)¶
confluent_image=untethered- This will instruct the OS to download the image up front and run out of compressed RAM instead of disk or fetching on-demand. This results in increased memory consuption. Benefits and drawbacks:
| Benefits | Drawbacks |
|---|---|
| Fastest performance as all content is RAM resident | Slower boot as full image must be downloaded at once |
| Independent functioning from the deployment infrastructure after boot | Large memory consumption |