Video Walkthrough
To see a live demo of this writeup, visit Youtube here:Installation
How to Get VirtualBox
Install VirtualBox with your operating system package manager or from the website. For example, on Ubuntu for x86:Install talosctl
You can downloadtalosctl
on MacOS and Linux via:
Download ISO Image
Download the ISO image from Image Factory.linux
platform:
Create VMs
Start by creating a new VM by clicking the “New” button in the VirtualBox UI:

Note: Make sure type is set as Linux / Other Linux (64-bit)
.
Edit the memory to supply at least 2GB of RAM for the VM:





Start Control Plane Node
Once the VMs have been created and updated, start the VM that will be the first control plane node. This VM will boot the ISO image specified earlier and enter “maintenance mode”. Once the machine has entered maintenance mode, there will be a console log that details the IP address that the node received. Take note of this IP address, which will be referred to as$CONTROL_PLANE_IP
for the rest of this guide.
If you wish to export this IP as a bash variable, simply issue a command like export CONTROL_PLANE_IP=1.2.3.4
.

Generate Machine Configurations
With the IP address above, you can now generate the machine configurations to use for installing Talos and Kubernetes. Issue the following command, updating the output directory, cluster name, and control plane IP as you see fit:_out
directory: controlplane.yaml, worker.yaml, and talosconfig.
Create Control Plane Node
Using thecontrolplane.yaml
generated above, you can now apply this config using talosctl.
Issue:
Note: This process can be repeated multiple times to create an HA control plane.
Note: If you encounter the following error in the console:
Talos is already installed to disk but booted from another media and talos.halt_if_installed kernel parameter set. Please reboot from another disk.
Simply remove the ISO image from the VM and restart it.
Create Worker Node
Create at least a single worker node using a process similar to the control plane creation above. Start the worker node VM and wait for it to enter “maintenance mode”. Take note of the worker node’s IP address, which will be referred to as$WORKER_IP
.
If you wish to export this IP as a bash variable, simply issue a command like export WORKER_IP=1.2.3.4
.
Issue:
Note: This process can be repeated multiple times to add additional workers.
Bootstrap etcd
Before the cluster is ready, the etcd
has to be bootstrapped.
The cluster will be in stage Booting
and healthy
state until this is stage is completed.
Set the endpoints
and nodes
:
etcd
by running the following command.
You should see stage change to Running
and your cluster is now ready.
Using the Cluster
Once the cluster is available, you can make use oftalosctl
and kubectl
to interact with the cluster.
For example, to view current running containers, run talosctl containers
for a list of containers in the system
namespace, or talosctl containers -k
for the k8s.io
namespace.
To view the logs of a container, use talosctl logs <container>
or talosctl logs -k <container>
.
First, configure talosctl to talk to your control plane node by issuing the following, updating paths and IPs as necessary:
Retrieve the kubeconfig
At this point we can retrieve the admin kubeconfig
by running:
export KUBECONFIG=$(pwd)/kubeconfig
.
You can then use kubectl in this fashion: