Replies: 1 comment
|
This is really weird. I can really tell with certainty what is going on. Could you try with v0.7.0 and see if this issue is still there? |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Spegel version
v0.6.0
Kubernetes distribution
Talos 1.12.4
Kubernetes version
v1.33.0
CNI
Cilium
Describe the bug
On a fresh 3-node Talos cluster with Cilium, Spegel v0.6.0 fails to bootstrap P2P routing. All 3 DaemonSet pods start simultaneously but the routing table never populates, causing the startup probe to kill them after 180s (60 × 3s). This results in an infinite CrashLoopBackOff cycle.
This is similar to #709 and #686, but those fixes are already included in v0.6.0. The error message is different — we see
routing table is empty after bootstrappingrather thancould not get peer id.Key observations:
spegel-bootstrap.kube-system.svc.cluster.localresolves to all 3 pod IPsspegel-bootstrapheadless service has all 3 endpoints registeredhostNetworkis not enabled (pods use pod IPs)configuration) runs successfully and writes mirror config to/etc/cri/conf.d/hosts/_default/hosts.tomlHelm values:
Talos machine config (containerd customization):
Container args (from DaemonSet):
Logs (from one pod, all 3 show the same pattern):
{"time":"2026-03-28T03:19:40.595013234Z","level":"INFO","msg":"skipping verification of containerd configuration"} {"time":"2026-03-28T03:19:40.605749884Z","level":"INFO","msg":"starting p2p router","logger":"p2p","id":"12D3KooWN51k1SDTGTu3FtSvXopapPc3k9t2GDkrVTHDURsPgeaQ"} {"time":"2026-03-28T03:19:40.605927582Z","level":"INFO","msg":"running Spegel","registry":":5000","router":":5001"} {"time":"2026-03-28T03:19:40.634665457Z","level":"INFO","msg":"waiting for store events"} {"time":"2026-03-28T03:19:50.609661248Z","level":"ERROR","msg":"failed to run bootstrap","logger":"p2p","err":"routing table is empty after bootstrapping","attempts":1} {"time":"2026-03-28T03:20:00.674368879Z","level":"ERROR","msg":"failed to run bootstrap","logger":"p2p","err":"routing table is empty after bootstrapping","attempts":2} {"time":"2026-03-28T03:20:10.723436888Z","level":"ERROR","msg":"failed to run bootstrap","logger":"p2p","err":"routing table is empty after bootstrapping","attempts":3} {"time":"2026-03-28T03:20:21.016833924Z","level":"ERROR","msg":"failed to run bootstrap","logger":"p2p","err":"routing table is empty after bootstrapping","attempts":4} {"time":"2026-03-28T03:20:31.035458863Z","level":"ERROR","msg":"failed to run bootstrap","logger":"p2p","err":"routing table is empty after bootstrapping","attempts":5} {"time":"2026-03-28T03:20:41.259104375Z","level":"ERROR","msg":"failed to run bootstrap","logger":"p2p","err":"routing table is empty after bootstrapping","attempts":6}The bootstrap retries every ~10s with exponential backoff, but never succeeds. After 60 failed startup probes (180s), the pod is killed and the cycle repeats.
Events:
Connectivity verification (from a test pod):
DNS verification:
DaemonSet status:
Startup probe config:
Expected behavior
The P2P routing table should eventually populate as pods discover each other via the DNS bootstrap service, and
/readyzshould return 200.All reactions