* Matchbox examples should be simple and educational to show how to PXE provision machines into clusters. Today, these goals are achieved well enough by the 3-node etcd cluster example * Several years ago, I put together examples PXE booting Kubernetes clusters with Matchbox. That was before we wrote Tectonic or Kubernetes was as popular as it is. Today, a Kubernetes distro is a project in its own right. It no longer makes sense to maintain (duplicate) a Kubernetes distro as "an example" inside Matchbox. * Matchbox is now used for Kubernetes cluster provisioning in more organizations than ever. It backs the poseidon/Typhoon and kinvolk/Locomotive distros. These both serve as great external examples of using Matchbox to provision Kubernetes clusters Attention: If you relied on Matchbox Kubernetes docs, you can find a similar guide at https://typhoon.psdn.io/cl/bare-metal/ (same author). https://github.com/poseidon/typhoon/
2.6 KiB
Examples
Matchbox automates network booting and provisioning of clusters. These examples show how to use matchbox on-premise or locally with QEMU/KVM.
Terraform Examples
These examples use Terraform as a client to Matchbox.
| Name | Description |
|---|---|
| simple-install | Install Container Linux with an SSH key |
| etcd3-install | Install a 3-node etcd3 cluster |
Customization
You are encouraged to look through the examples and Terraform modules. Implement your own profiles or package them as modules to meet your needs. We've just provided a starting point. Learn more about matchbox and Container Linux configs.
Manual Examples
These examples mount raw Matchbox objects into a Matchbox server's /var/lib/matchbox/ directory.
| Name | Description | CoreOS Container Linux Version | FS | Docs |
|---|---|---|---|---|
| simple | CoreOS Container Linux with autologin, using iPXE | stable/1967.3.0 | RAM | reference |
| simple-install | CoreOS Container Linux Install, using iPXE | stable/1967.3.0 | RAM | reference |
| grub | CoreOS Container Linux via GRUB2 Netboot | stable/1967.3.0 | RAM | NA |
| etcd3 | PXE boot a 3-node etcd3 cluster with proxies | stable/1967.3.0 | RAM | None |
| etcd3-install | Install a 3-node etcd3 cluster to disk | stable/1967.3.0 | Disk | None |
Customization
Autologin
Example profiles pass the coreos.autologin kernel argument. This skips the password prompt for development and troubleshooting and should be removed before production.
SSH Keys
Example groups allow ssh_authorized_keys to be added for the core user as metadata. You might also include this directly in your Ignition.
# /var/lib/matchbox/groups/default.json
{
"name": "Example Machine Group",
"profile": "pxe",
"metadata": {
"ssh_authorized_keys": ["ssh-rsa pub-key-goes-here"]
}
}
Conditional Variables
"pxe"
Some examples check the pxe variable to determine whether to create a /dev/sda1 filesystem and partition for PXEing with root=/dev/sda1 ("pxe":"true") or to write files to the existing filesystem on /dev/disk/by-label/ROOT ("pxe":"false").