0%

CentOS7设置固定IP

主机操作系统为macOS,在VMware Fusion上安装了数台CentOS7虚拟机,在其上面安装Kubernetes集群。

主机待机或休眠后,再次进入虚拟机时,发现虚拟机的时间并不与主机保持同步。这个问题在mac主机待机后和虚拟机时间不统一的问题中解决。

然后我通过命令date -s把虚拟机延迟的时间统一修改为当前时间。时间是修改好了,却出了一个严重的问题,连到虚拟机的ssh全部断开了,发现虚拟机的IP地址全部变了。随之而来的便是Prometheus的各种报警,监控的Targets
全都变红了。

所以需要把虚拟机从原来的DHCP动态分配IP改为静态固定好的IP。

修改/etc/sysconfig/network-scripts/ifcfg-ens33文件的内容。

1
2
3
4
5
6
BOOTPROTO=static

DNS1=114.114.114.114
IPADDR=172.16.64.233
NETMASK=255.255.255.0
GATEWAY=172.16.64.2

BOOTPROTOdhcp改为static

添加DNS1 Domain Name Server设置为114.114.114.114,这个是全国统一的。
添加IPADDR设置为变化之前的IP地址。

每次安装vmware fusion,自动生成的ip段都不一样。为了保持一致,可以修改vmware fusion的配置文件。

VMnet1: 对应Host-only模式,也就是自定下的“仅供我的Mac专用”

VMnet8:对应NAT模式,也就是网络配置中的Internet共享下的“与我的Mac共享”

VMnet0:对应桥接模式,也就是桥接模式网络链接下的“自动检测”

1
2
3
4
5
6
7
cat /Library/Preferences/VMware\ Fusion/networking
...
answer VNET_8_HOSTONLY_NETMASK 255.255.255.0
answer VNET_8_HOSTONLY_SUBNET 172.16.64.0
answer VNET_8_NAT yes
answer VNET_8_VIRTUAL_ADAPTER yes
...

添加GATEWAY

执行ip route show,获取GATEWAY的地址为:172.16.64.2

1
2
3
4
5
6
7
8
9
10
11
ip route show
default via 172.16.64.2 dev ens33 proto static metric 100
10.244.36.64/26 via 172.16.64.232 dev tunl0 proto bird onlink
10.244.169.128/26 via 172.16.64.235 dev tunl0 proto bird onlink
blackhole 10.244.235.192/26 proto bird
10.244.235.232 dev calia6f6ed2a513 scope link
10.244.235.233 dev cali9716a65ec87 scope link
10.244.235.234 dev cali26873b73fbd scope link
172.16.64.0/24 dev ens33 proto kernel scope link src 172.16.64.233 metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.19.0.0/16 dev br-bebfcba064b2 proto kernel scope link src 172.19.0.1

保存退出后,重启网络systemctl restart network。过一会儿,Kubernetes集群又能正常工作了。