The easiest way to bootstrap a self-hosted High Availability Kubernetes cluster. A fully automated HA k3s etcd install with kube-vip, MetalLB, and more. Build. Destroy. Repeat.
Errors out on the task Init cluster inside the transient k3s-init service
The same error message is repeated for all 3 master nodes.
Steps to Reproduce
Setup 5x new Ubuntu 22.04 VM's on Proxmox, install latest updates.
Add ssh key for ansible to get SSH access from control node.
Edit all.yml to match private ip-networks.
Run playbook with: ansible-playbook ./site.yml -i ./inventory/my-cluster/hosts.ini --ask-become-pass
Context (variables)
Operating system: Ubuntu 22.04
Hardware: Proxmox running on Lenovo M910q MFF PC
Variables Used
all.yml
k3s_version: v1.24.8+k3s1
# this is the user that has ssh access to these machines
ansible_user: k3s-admin
systemd_dir: /etc/systemd/system
# Set your timezone
system_timezone: "Europe/Stockholm"
# interface which will be used for flannel
flannel_iface: "eth0"
# apiserver_endpoint is virtual ip-address which will be configured on each master
apiserver_endpoint: "10.10.10.130"
# k3s_token is required masters can talk together securely
# this token should be alpha numeric only
k3s_token: "3CjpRV4pnDEb9vC2Cw2y3CjpRV4pnDEb9vC2Cw2y"
# The IP on which the node is reachable in the cluster.
# Here, a sensible default is provided, you can still override
# it for each of your hosts, though.
k3s_node_ip: '{{ ansible_facts[flannel_iface]["ipv4"]["address"] }}'
# Disable the taint manually by setting: k3s_master_taint = false
k3s_master_taint: "{{ true if groups['node'] | default([]) | length >= 1 else false }}"
# these arguments are recommended for servers as well as agents:
extra_args: >-
--flannel-iface={{ flannel_iface }}
--node-ip={{ k3s_node_ip }}
# change these to your liking, the only required are: --disable servicelb, --tls-san {{ apiserver_endpoint }}
extra_server_args: >-
{{ extra_args }}
{{ '--node-taint node-role.kubernetes.io/master=true:NoSchedule' if k3s_master_taint else '' }}
--tls-san {{ apiserver_endpoint }}
--disable servicelb
--disable traefik
extra_agent_args: >-
{{ extra_args }}
# image tag for kube-vip
kube_vip_tag_version: "v0.5.7"
# image tag for metal lb
metal_lb_speaker_tag_version: "v0.13.7"
metal_lb_controller_tag_version: "v0.13.7"
# metallb ip range for load balancer
metal_lb_ip_range: "10.10.10.210-10.10.10.250"
Expected Behavior
Playbook should run and setup K3S on the nodes.
Current Behavior
Errors out on the task Init cluster inside the transient k3s-init service
The same error message is repeated for all 3 master nodes.
Steps to Reproduce
Context (variables)
Operating system: Ubuntu 22.04
Hardware: Proxmox running on Lenovo M910q MFF PC
Variables Used
all.yml
Hosts
host.ini
Possible Solution
Full Ansible Playbook Recap