- Hetzner Cloud virtual servers, loadbalancers, storage volumes
- Talos Linux secure, immutable, and minimal
- Kubernetes container orchestrator
- Rancher enterprise Kubernetes management, dashboard
- Traefik ingress controller
- Cert-Manager manage Let's Encrypt certificates
- Mayastor container attached storage (optional)
- A local console, for example iTerm or SSH to a Linux shell
- Either:
- macOS with Homebrew,
- A Debian Linux variant like Ubuntu or
- Install tools checked on the bottom of 0_tools.sh manually
- An Hetzner account
- In the Hetzner Cloud Console create a Project
- In the Project create an API token using Security (left sidebar) => API tokens
- Description:
CLI(doesn't matter) - Permissions: Read & Write
- Save the token in a safe place, it will be asked later with prompt
Token:
- Description:
Clone this project and go to the directory
git clone https://github.com/jeroenvermeulen/hetzner-talos-k8s-rancher.git
cd hetzner-talos-k8s-rancherCopy the example config and update it in your favorite editor
cp CONFIG.sh.example CONFIG.sh
nano CONFIG.shMake sure you update at least RANCHER_HOSTNAME
./0_tools.sh./1_hcloud_disk_image.sh./2_cluster.sh./3_services.sh./4_rancher.shIf everything works well the last script will display the Rancher URL.
source ./env.shtalosctl get memberstalosctl services --nodes 111.22.33.44talosctl logs etcd --nodes 111.22.33.44If the loadbalancer is not working correctly you can add --endpoint 111.22.33.44 with the node IP to connect to
port 50000 (Talos API) of the node directly instead of through the loadbalancer.
