Open camrossi opened 8 months ago
I still need to find a a nice place for a quickstart guide. This issue will stay open in the mean time
k8sServiceHost
should be 127.0.0.1 as of Talos version 1.6.2 and loadBalancer.acceleration=native
for xdp native support should be added.
Hi @nberlee thanks for the loadBalancer.acceleration=native
totally missed that.
I tried it and it worked fine on my 3xRK1 but is failing on my RPI4
level=fatal msg="Failed to compile XDP program" error="program cil_xdp_entry: attaching XDP program to interface enxe45f01c7527b: operation not supported" subsys=datapath-loader
Seems I need some more Kernel parameters... something I will check later but for the scope of this I have added it in my original comment :)
As for the k8sServiceHost in the talos config is specified to use localhost
https://www.talos.dev/v1.6/kubernetes-guides/network/deploying-cilium/#without-kube-proxy are you sure are not interchangeable?
Yes, if you have a mixed cluster, you cannot set XDP native in helm.
The Pi4 has a brcmgenet driver which does not support XDP native.
There is Generic XDP which doesn't use the driver but the kernel (a bit slower) but is only supported in Talos 1.7 as XDP_SOCKETS are on.
So in order to have the RK1s in XDP native native mode and your pi disabled, you can try XDP selective config.
Have it disabled in your helm. add the label to all your RK1 nodes (kubectl label node rk1-1 io.cilium.xdp-offload=true
), restart cilium ds pods and only the RK1s have XDP native enabled then.
As for k8sServiceHost, see https://github.com/siderolabs/talos/commit/8fa6e93f0 I am certain the docs will change to 127.0.0.1 in this regard. It makes ipv6 clusters not have an issue with https://github.com/siderolabs/talos/issues/8112
I was just reading the XDP selective config! Will give it a try later today !
Thank you so much for the in-depth explanation, I have updated the 127.0.0.1!
Now it says k8sServiceHost
and k8sServicePort
twice :)
Upsies... I think now is fixed!
If i follow this, the cluster will never get ready, as soon as i enable the cni it works.
Ok, if I had set the port for the cluster address, it would have worked, so feel free to ignore...
I embedded this configuration in my Talos setup script: https://github.com/bguijt/turingpi2/tree/main/projects/talos/shell - thanks!
he ascii cinema video is great and give an very good idea on how to deploy this. Perhaps you could consider adding an example on how to deploy this for Cilium + ebpf + Proxy Replacement and the L2 Advertisement feature.
This is what I did in my cluster:
op: add path: /machine/kernel value: modules:
op: add path: /machine/install/disk value: /dev/mmcblk0
op: add path: /machine/network value: interfaces:
op: add path: /cluster/network/cni value: name: none
op: add path: /cluster/proxy value: disabled: true
op: add path: /cluster/allowSchedulingOnControlPlanes value: true
Edit the files and set the hostname
Bootstrap the cluster as per your video
Now the cluster comes up without a CNI as I have disabled it but we can just deploy Cilium with Helm