⚓
エラー:Couldn't attach to pod, falling back to streaming logs
自分のVagrantのVM上でK8sクラスタを構築していたのですが、Busyboxコンテナを作ってコンテナに入る時に以下のエラーが出ました。
Couldn't attach to pod, falling back to streaming logs: unable to upgrade connection: pod does not exist
これだとトラブルシューティング用のログさえ見れず、手も足も出ません。
原因
これはIPアドレスのコンフリクトによるものだそうです。
たしかに自分のクラスタのノードは以下のように全て10.0.2.15
でIPが固定されていました。
vagrant@controlplane:~$ kubectl get pods -o wide -n kube-flannel
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-flannel-ds-56swz 0/1 Init:0/2 0 8s 10.0.2.15 node02 <none> <none>
kube-flannel-ds-d2pzx 1/1 Running 0 107s 10.0.2.15 controlplane <none> <none>
kube-flannel-ds-jrpvn 0/1 Init:1/2 0 14s 10.0.2.15 node01 <none> <none>
解決方法
kubeletの環境変数を更新する必要があります。
sudo vi /etc/default/kubelet
マスターノードの場合は以下のように設定します。
- KUBELET_EXTRA_ARGS=
+ KUBELET_EXTRA_ARGS=--node-ip=192.168.56.11
kubeletをリスタートします。
sudo systemctl restart kubelet
すべてのノードで完了したら一応確認します。
vagrant@node02:~$ kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
controlplane Ready control-plane 44m v1.32.1 192.168.56.11 <none> Ubuntu 22.04.5 LTS 5.15.0-130-generic containerd://1.7.12
node01 Ready <none> 42m v1.32.1 192.168.56.21 <none> Ubuntu 22.04.5 LTS 5.15.0-130-generic containerd://1.7.12
node02 Ready <none> 42m v1.32.1 192.168.56.22 <none> Ubuntu 22.04.5 LTS 5.15.0-130-generic containerd://1.7.12
これでBusyboxコンテナが立ち上がるようになりました。
参考
こちらが参考になりました。
Discussion