Skip to content

Commit d283217

Browse files
Felix Wischke (65278)wikkyk
authored andcommitted
docs/Troubleshooting: document node-ip choice and pcibus scanning
1 parent 736a064 commit d283217

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

docs/Troubleshooting.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,40 @@ time="2024-03-14T11:48:58Z" level=info msg="No interface is specified for VIP in
100100
....
101101
time="2024-03-14T11:52:30Z" level=fatal msg="unable to detect default interface -> [Unable to find default route]"
102102
```
103+
104+
## Nodes fail to deploy/have wrong node-ip with mixed interface models
105+
Kubelet chooses the first interface to acquire a node-ip for kubeadm. The first
106+
interface is defined by the in-kernel order, which is defined by the order the
107+
pci bus is scanned and drivers are loaded.
108+
109+
As an example:
110+
```
111+
kubectl get nodes -o wide
112+
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
113+
test-cluster-control-plane-gcgc6 Ready control-plane 11h v1.26.7 10.0.1.69 <none> Ubuntu 22.04.3 LTS 5.15.0-89-generic containerd://1.7.6
114+
test-cluster-load-balancer-c8rd2 Ready load-balancer,node 11h v1.26.7 10.0.2.155 <none> Ubuntu 22.04.3 LTS 5.15.0-89-generic containerd://1.7.6
115+
test-cluster-load-balancer-wqbcg Ready load-balancer,node 11h v1.26.7 10.0.2.152 <none> Ubuntu 22.04.3 LTS 5.15.0-89-generic containerd://1.7.6
116+
test-cluster-worker-hbm8s Ready node 11h v1.26.7 10.0.1.71 <none> Ubuntu 22.04.3 LTS 5.15.0-89-generic containerd://1.7.6
117+
test-cluster-worker-n2vbc NotReady node 17m v1.26.7 10.0.1.73 <none> Ubuntu 22.04.3 LTS 5.15.0-89-generic containerd://1.7.6
118+
```
119+
120+
The load-balancers have an `e1000` interface as their default network, whereas `ens19` and `ens20` are `virtio`
121+
```
122+
root@test-cluster-load-balancer-zrjx8:~# ip -o l sh
123+
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000\ link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
124+
2: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc prio state UP mode DEFAULT group default qlen 1000\ link/ether 0a:97:89:e5:7f:1d brd ff:ff:ff:ff:ff:ff\ altname enp0s19
125+
3: ens20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc prio master vrf-ext state UP mode DEFAULT group default qlen 1000\ link/ether 9a:58:08:40:a2:70 brd ff:ff:ff:ff:ff:ff\ altname enp0s20
126+
4: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc prio state UP mode DEFAULT group default qlen 1000\ link/ether 16:7a:ee:74:23:0d brd ff:ff:ff:ff:ff:ff\ altname enp0s18
127+
```
128+
129+
This is the order the interfaces are created in:
130+
```
131+
root@test-cluster-load-balancer-zrjx8:~# dmesg -t | grep eth
132+
virtio_net virtio2 ens19: renamed from eth0
133+
virtio_net virtio3 ens20: renamed from eth1
134+
e1000 0000:00:12.0 eth0: (PCI:33MHz:32-bit) 16:7a:ee:74:23:0d
135+
e1000 0000:00:12.0 eth0: Intel(R) PRO/1000 Network Connection
136+
e1000 0000:00:12.0 ens18: renamed from eth0
137+
```
138+
139+
If you absolutely must mix interface types, make sure that the default network interface is the one that comes up first.

0 commit comments

Comments
 (0)