我需要为 GKE 上的一些特定 K8s pod 添加第二个接口,这些 pod 需要从 Internet 上的公共用户直接访问。所以我使用了 Multus 并像这样定义了一个 Macvlan cni:
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: macvlan-conf
spec:
config: '{
"cniVersion": "0.3.1",
"type": "macvlan",
"master": "eth0",
"mode": "bridge",
"ipam": {
"type": "host-local",
"subnet": "10.162.0.0/20",
"rangeStart": "10.162.0.100",
"rangeEnd": "10.162.0.150",
"routes": [
{ "dst": "0.0.0.0/0" }
],
"gateway": "10.162.0.1"
}
}'
10.162.0.1 是我的 K8s 节点在 GCP 中的默认网关。所以,我想在这种情况下,豆荚应该可以访问外部。但是在 pod 中,只有一个默认网关来路由内部 pod 流量。另外,由于权限问题,我无法添加任何路线。
问题:
我的预期错了吗?我应该如何使用 Macvlan 为这些 pod 创建一个公共接口?