toge510 / homelab

0 stars 0 forks source link

Kubelet detected non-appropriate network interface #1

Closed toge510 closed 1 year ago

toge510 commented 1 year ago

I tried to create kubernetes cluster on virtualbox with kubeadm.

sudo kubeadm init --apiserver-advertise-address=192.168.11.10 --pod-network-cidr=10.244.0.0/16

It seems like kubelet detected non-appropriate netwrok interface and node ip address was 10.0.2.15 which's not expected (192.168.11.10 which's expected).

vagrant@master:~$ kubectl get po -A -o wide
NAMESPACE     NAME                             READY   STATUS              RESTARTS   AGE   IP          NODE     NOMINATED NODE   READINESS GATES
kube-system   coredns-5d78c9869d-9sdd9         0/1     ContainerCreating   0          14m   <none>      master   <none>           <none>
kube-system   coredns-5d78c9869d-gnhxn         0/1     ContainerCreating   0          14m   <none>      master   <none>           <none>
kube-system   etcd-master                      1/1     Running             7          14m   10.0.2.15   master   <none>           <none>
kube-system   kube-apiserver-master            1/1     Running             7          14m   10.0.2.15   master   <none>           <none>
kube-system   kube-controller-manager-master   1/1     Running             5          14m   10.0.2.15   master   <none>           <none>
kube-system   kube-proxy-vw26h                 1/1     Running             0          14m   10.0.2.15   master   <none>           <none>
kube-system   kube-scheduler-master            1/1     Running             8          14m   10.0.2.15   master   <none>           <none>
toge510 commented 1 year ago

Solution

It seems like that Kubelet can detect automatically the primary network interface (ip address 10.0.2.15)

vagrant@master:~$ ip route show
default via 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 100 
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15 metric 100 
10.0.2.2 dev eth0 proto dhcp scope link src 10.0.2.15 metric 100 
10.0.2.3 dev eth0 proto dhcp scope link src 10.0.2.15 metric 100 
10.244.171.64/26 via 192.168.11.11 dev eth1 proto 80 onlink 
blackhole 10.244.219.64/26 proto 80 
192.168.11.0/24 dev eth1 proto kernel scope link src 192.168.11.10 

I explicitly configured the node ip in the environment configuration file of Kubelet as shown below.

echo -n "KUBELET_EXTRA_ARGS=\"--node-ip=192.168.11.10\"" | sudo tee /etc/default/kubelet

To summarize, I did the following.

vagrant@master:~$ kubectl get po -A -o wide
NAMESPACE     NAME                             READY   STATUS              RESTARTS   AGE   IP              NODE     NOMINATED NODE   READINESS GATES
kube-system   coredns-5d78c9869d-hrptg         0/1     ContainerCreating   0          19m   <none>          master   <none>           <none>
kube-system   coredns-5d78c9869d-nw46f         0/1     ContainerCreating   0          19m   <none>          master   <none>           <none>
kube-system   etcd-master                      1/1     Running             10         19m   192.168.11.10   master   <none>           <none>
kube-system   kube-apiserver-master            1/1     Running             10         19m   192.168.11.10   master   <none>           <none>
kube-system   kube-controller-manager-master   1/1     Running             8          19m   192.168.11.10   master   <none>           <none>
kube-system   kube-proxy-bk9dm                 1/1     Running             0          19m   192.168.11.10   master   <none>           <none>
kube-system   kube-scheduler-master            1/1     Running             11         19m   192.168.11.10   master   <none>           <none>
toge510 commented 1 year ago

Closes