我在 Kubernetes 集群中有 2 个工作节点。工作节点位于同一个 L2 域上。
$]cat ipvlanconf1.yaml
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: ipvlanconf1
namespace: cncf
spec:
config: '{
"cniVersion": "0.3.0",
"type": "ipvlan",
"master": "enp1s0.10",
"mode": "l3",
"vlan": 10,
"ipam": {
"type": "whereabouts",
"range": "10.1.1.1/24",
"gateway": "10.1.1.254"
}
}'
Worker-node0 上的 Pod00 正在使用 IPVLAN。所以,net1 得到 10.1.1.1
Worker-node1 上的 Pod01 正在使用 IPVLAN。所以,net1 得到 10.1.1.2
我希望能够 ping 10.1.1.1 <---> 10.1.1.2 并且它应该带有 VLAN 标头。我在 tcpdump 中看不到任何内容。问题:
我假设 VLAN 标头是由 Pod 本身插入的。但是,在 IPVLAN CNI 中,我看不到任何通过配置获取 VLAN 信息的代码。我的理解正确吗?
应该将 pod 中的接口显式配置为 vlan-subinterfaces (net1.10) 还是应该在工作节点 (enp1s0.10) 上进行配置?
我应该使用什么作为“主”界面?enp1s0 还是 enp1s0.10?
谢谢