
我發現一個問題,在執行修補後,Ubuntu 20 作業系統上的網路介面名稱從 ens192 更新為 eth0。
由於網路介面名稱的更改,在各個節點上運行的 docker 容器會拋出以下錯誤 -
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
在執行修補之前,「ip a」指令的輸出如下所示 -
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
inet x.x.x.x/22 brd x.x.x.x scope global ens192
執行修補後,docker 容器會拋出如上所述的錯誤。重新啟動節點會導致無法透過 ping 和 SSH 存取節點。
透過 VMWare 控制台檢查時,我們可以看到網路介面名稱已更新為 eth0,這是意外的。我們在 /etc/netplan/99-netcfg-vmware.yaml 中定義了 ens192 介面名稱,如下所示 -
# Generated by VMWare customization engine.
network:
version: 2
renderer: networkd
ethernets:
ens192:
dhcp4: no
dhcp6: no
addresses:
- x.x.x.x/22
gateway4: x.x.x.x
節點上的 netplan 配置需要一個名為 ens192 的接口,但節點突然使用 eth0 名稱。
作為解決方法,我們使用以下命令將 eth0 介面重新命名回 ens192。
sudo ip link set eth0 down
sudo ip link set eth0 name ens192
sudo ip link set ens192 up
執行上述命令後,節點透過 ping 和 SSH 進行回應。但這些變化並不是持久的。節點重新啟動後,網路介面名稱再次從 ens192 更新為 eth0。