Deployment Talos Linux
Minimum system requirements
You will need a minimum of 2 Network Interfaces
Tip
While we would expect the environment to be running with multiple bonds in a production cloud, two network interfaces is all that's required. This can be achieved with vlan tagged devices, physical ethernet devices, macvlan, or anything else. Have a look at the netplan example file found here for an example of how you could setup the network.
Note
You will also want to update the /etc/genestack/helm-chart-versions.yaml file. You will want to set the kube-ovn version to: kube-ovn: v1.14.10
Kernel modules
Talos boot image by default comes with very little. A typical install of Genestack will use Longhorn as the persistent storage backend. In order to use longhorn you will need the following extra packages
- siderolabs/iscsi-tools
- siderolabs/util-linux-tools
A bootable image with the extra packages installed can be found here: Talos Linux Image Factory
- Download The Talos Linux Image
- Boot Your Machines
- Install talosctl
- Generate cluster configs
Run this command to generate the configuration file
Apply Configurations
Now that you’ve created your configurations, it’s time to apply them to bring your nodes and cluster online.
Run this command to apply the control plane configuration:
Next, apply the worker node configuration
for ip in "${WORKER_IP[@]}"; do
echo "Applying config to worker node: $ip"
talosctl apply-config --insecure --nodes "$ip" --file worker.yaml
done
Set your endpoints
Set your endpoints with this
Bootstrap Your Etcd Cluster
Wait for your control plane node to finish booting, then bootstrap your etcd cluster by running.
Note
Run this command ONCE on a SINGLE control plane node. If you have multiple control plane nodes, you can choose any of them.
Get Kubernetes Access
Download your kubeconfig file to start using kubectl. You have two download options: you can either merge your Kubernetes configurations OR keep them separate. Here’s how to do both:
Merge your new cluster into your local Kubernetes configuration
Specify a filename if you prefer not to merge with your default Kubernetes configuration
talosctl kubeconfig alternative-kubeconfig --nodes $CONTROL_PLANE_IP --talosconfig=./talosconfig
export KUBECONFIG=./alternative-kubeconfig
Tip
You will need to keep in mind that kubespray installs cert-manager as part of its installation process. So you will need to install it manually. Here is a helm chart that will provide it for you: https://github.com/cert-manager/cert-manager