1. Deploy Talos Linux and bootstrap a Kubernetes cluster
Before you begin
This tutorial assumes that you deploy a Cozystack cluster on virtual machines, which is the most universal and simple way. Make sure you have VMs and a management host that match the requirements.
Objectives
This tutorial shows how to bootstrap Cozystack. It will guide you through the following steps:
- Install Talos Linux on virtual machines
- Bootstrap Talos to run a Kubernetes cluster
- Get a kubeconfig, check cluster status, and prepare to install Cozystack
1 Install Talos Linux
Boot your machines with Talos Linux image in one of these ways:
- Install using temporary DHCP and PXE servers running in Docker containers.
- Install using ISO.
- Install on Hetzner servers.
2 Bootstrap Talos Cluster
Bootstrap your Talos Linux cluster using one of the following tools:
- Talm, for a declarative way of cluster management.
- talosctl, for using native
talosctl
tool. - talos-bootstrap, for an interactive walkthrough.
Talm is a utility tool for bootstrapping and managing Talos clusters in a declarative way.
Visit the releases page for the latest Talm binaries or use the universal installation script:
curl -sSL https://github.com/cozystack/talm/raw/refs/heads/main/hack/install.sh | sh -s
talm --help
talos-bootstrap is an interactive script for bootstrapping Kubernetes clusters on Talos OS.
sudo curl -fsSL -o /usr/local/bin/talos-bootstrap \
https://github.com/cozystack/talos-bootstrap/raw/master/talos-bootstrap
sudo chmod +x /usr/local/bin/talos-bootstrap
talos-bootstrap --help
Existing cluster or other Kubernetes distributions
For a first tutorial run, it’s strongly recommended to install Cozystack on bare metal. However, Cozystack can also be installed in other ways, including on top of a provided managed Kubernetes cluster.
If you bootstrap your Talos cluster in your own way, or use a different Kubernetes distribution, make sure to apply all settings from the guides above. These settings are mandatory:
- All CNI plugins must be disabled, as Cozystack will install its own plugin.
- Kubernetes cluster DNS domain must be set to
cozy.local
. - Listening address of some Kubernetes components must be changed from
localhost
to a routeable address. - Kubernetes API server must be reachable on
localhost
.