方案1:
在 Calico GitHub Issues#5196 问题的 commits#6249 提交中,引入新的 Pod 注释cni.projectcalico.org/hwAddr,用于将指定的 MAC 地址分配给容器端 Veth 接口。
将Calico升级至v3.24.1或以上版本,使用如下注解轻松设置Pod IP和Mac地址。
annotations: cni.projectcalico.org/ipAddrs: '["10.244.3.219"]' # 固定IP地址cni.projectcalico.org/hwAddr: "7e:72:f2:7a:ed:4c" # 固定Mac地址
方案二:
配置securityContext获取网络权限后,通过postStart钩子在容器启动后修改Mac地址,解决容器网卡Mac地址固定的问题。
spec:...template:...spec:containers:- name: myapp-testimage: 'docker.io/library/centos:latest'imagePullPolicy: Alwaysports:- containerPort: 80protocol: TCPresources: {}lifecycle:postStart:exec:command:- /bin/sh- '-c'- 'ifconfig eth0 hw ether 76:15:a2:d8:40:5e'securityContext:capabilities:add:- NET_ADMIN