I’ve settle on K0s, as K3s documentation and forum was not productive in getting a full working setup with Traefik.
Hopefully this forum has users with enough Traefik and K0s experience.
I hope my efforts will cause some positive changes on k0s Getting started documentation.
As any reader can imagine, wanting a k8s distribution that actually has “Zero Friction” is much needed.
I am trying to do something quite simple and I am sure I am not the only one.
Set up a 3 node cluster in HA with bare minimum dependencies and get metrics showing up in Lens.
For sake of simplicity I have 3 nodes, setup as controller+worker (k0sctl would constantly hang waiting for a Ready state when adding worker nodes to the k0sctl yaml)
apiVersion: k0sctl.k0sproject.io/v1beta1
kind: Cluster
metadata:
name: k0s-cluster
spec:
hosts:
- role: controller+worker
noTaints: true
ssh:
address: 192.168.1.110
user: root
keyPath: ~/.ssh/id_rsa
- role: controller+worker
noTaints: true
ssh:
address: 192.168.1.114
user: root
keyPath: ~/.ssh/id_rsa
- role: controller+worker
noTaints: true
ssh:
address: 192.168.1.112
user: root
keyPath: ~/.ssh/id_rsa
k0s:
version: v1.28.4+k0s.0
dynamicConfig: false
config:
apiVersion: k0s.k0sproject.io/v1beta1
kind: ClusterConfig
metadata:
name: k0s-cluster
spec:
network:
nodeLocalLoadBalancing:
enabled: true
type: EnvoyProxy
extensions:
helm:
repositories:
- name: traefik
url: https://traefik.github.io/charts
- name: bitnami
url: https://charts.bitnami.com/bitnami
charts:
- name: traefik
chartname: traefik/traefik
version: "20.5.3"
namespace: default
- name: metallb
chartname: bitnami/metallb
version: "2.5.4"
namespace: default
values: |
configInline:
address-pools:
- name: generic-cluster-pool
protocol: layer2
addresses:
- 192.168.1.150-192.168.9.155
The above yaml uses k0sctl, and follows the Traefik Ingress example on k0s official docs.
the yaml applies with no error bu when running k0s kubectl get all
traefik does not get an external IP assigned.
service/traefik LoadBalancer 10.96.226.129 <pending> 80:30193/TCP,443:31634/TCP 74s
and I don’t see the daemonset.apps/metallb
listed in my pods.
The example listed on k0s is using an outdated example from 2020 linked here From Zero to Hero: Getting Started with k0s and Traefik