1. 仅指定 NAD 的 key, kube-ovn 会默认分配子网
---
apiVersion: v1
kind: Pod
metadata:
name: multi-nic
namespace: default
annotations:
k8s.v1.cni.cncf.io/networks: '[{"interface":"net1","name":"attachnet1","namespace":"default"}]'
spec:
containers:
- name: netshoot
image: registry.paas/eki-plus/netshoot:latest
imagePullPolicy: Never
command:
- sh
- -c
- "sleep infinity"
securityContext:
capabilities:
add:
- NET_ADMIN
default multi-nic 1/1 Running 0 58s 10.222.0.83 csy-wx-pm-os01-eis-node02 <none> <none>
multi-nic.default 10.222.0.83 fd11:1111:1111::53 c2:98:83:6f:2f:70 csy-wx-pm-os01-eis-node02 ovn-default
multi-nic.default.attachnet1.default.ovn 10.222.0.82 fd11:1111:1111::52 b6:7d:02:06:5b:94 csy-wx-pm-os01-eis-node02 ovn-default
Name: multi-nic
Namespace: default
Priority: 0
Node: csy-wx-pm-os01-eis-node02/10.251.137.31
Start Time: Tue, 11 Jun 2024 17:23:41 +0800
Labels: <none>
Annotations: attachnet1.default.ovn.kubernetes.io/allocated: true
attachnet1.default.ovn.kubernetes.io/cidr: 10.222.0.0/18,fd11:1111:1111::/48
attachnet1.default.ovn.kubernetes.io/gateway: 10.222.0.1,fd11:1111:1111::1
attachnet1.default.ovn.kubernetes.io/ip_address: 10.222.0.82,fd11:1111:1111::52
attachnet1.default.ovn.kubernetes.io/logical_router: ovn-cluster
attachnet1.default.ovn.kubernetes.io/logical_switch: ovn-default
attachnet1.default.ovn.kubernetes.io/mac_address: b6:7d:02:06:5b:94
attachnet1.default.ovn.kubernetes.io/pod_nic_type: veth-pair
attachnet1.default.ovn.kubernetes.io/routed: true
k8s.v1.cni.cncf.io/network-status:
[{
"name": "kube-ovn",
"interface": "eth0",
"ips": [
"10.222.0.83",
"fd11:1111:1111::53"
],
"mac": "c2:98:83:6f:2f:70",
"default": true,
"dns": {},
"gateway": [
"10.222.0.1",
"fd11:1111:1111::1"
]
},{
"name": "default/attachnet1",
"interface": "net1",
"ips": [
"10.222.0.82",
"fd11:1111:1111::52"
],
"mac": "b6:7d:02:06:5b:94",
"dns": {}
}]
k8s.v1.cni.cncf.io/networks: [{"interface":"net1","name":"attachnet1","namespace":"default"}]
ovn.kubernetes.io/allocated: true
ovn.kubernetes.io/cidr: 10.222.0.0/18,fd11:1111:1111::/48
ovn.kubernetes.io/gateway: 10.222.0.1,fd11:1111:1111::1
ovn.kubernetes.io/ip_address: 10.222.0.83,fd11:1111:1111::53
ovn.kubernetes.io/logical_router: ovn-cluster
ovn.kubernetes.io/logical_switch: ovn-default
ovn.kubernetes.io/mac_address: c2:98:83:6f:2f:70
ovn.kubernetes.io/pod_nic_type: veth-pair
ovn.kubernetes.io/routed: true
Status: Running
IP: 10.222.0.83
IPs:
IP: 10.222.0.83
IP: fd11:1111:1111::53
Containers:
netshoot:
Container ID: containerd://2875f934bd3925835c8e8d7487d02059b6f79487711cccbb02cc2a22027e00ae
Image: registry.paas/eki-plus/netshoot:latest
Image ID: registry.paas/eki-plus/netshoot@sha256:869e0db58ed617fcffc1392548d3ccacad876e4589337b2b5ae18568ed8c2fbb
Port: <none>
Host Port: <none>
Command:
sh
-c
sleep infinity
State: Running
Started: Tue, 11 Jun 2024 17:24:11 +0800
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-jtqjt (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
kube-api-access-jtqjt:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal AddedInterface 3m58s multus Add eth0 [10.222.0.83/18 fd11:1111:1111::53/48] from kube-ovn
Normal AddedInterface 3m57s multus Add net1 [10.222.0.82/18 fd11:1111:1111::52/48] from default/attachnet1
Normal Pulled 3m57s kubelet Container image "registry.paas/eki-plus/netshoot:latest" already present on machine
Normal Created 3m57s kubelet Created container netshoot
Normal Started 3m57s kubelet Started container netshoot
2. 指定 NAD 的 key 和 value, value 一般是 kube-ovn ipam 中的子网
---
apiVersion: v1
kind: Pod
metadata:
name: multi-nic
namespace: default
annotations:
k8s.v1.cni.cncf.io/networks: '[{"interface":"net1","name":"attachnet1","namespace":"default"}]'
attachnet1.default.ovn.kubernetes.io/logical_switch: subnet2019
spec:
containers:
- name: netshoot
image: registry.paas/eki-plus/netshoot:latest
imagePullPolicy: Never
command:
- sh
- -c
- "sleep infinity"
securityContext:
capabilities:
add:
- NET_ADMIN
apiVersion: v1
kind: Pod
metadata:
annotations:
attachnet1.default.ovn.kubernetes.io/allocated: "true"
attachnet1.default.ovn.kubernetes.io/cidr: 10.251.175.32/27,2409:8c20:1833:2000::afb:af20/123
attachnet1.default.ovn.kubernetes.io/gateway: 10.251.175.62,2409:8C20:1833:2000::afb:af3E
attachnet1.default.ovn.kubernetes.io/ip_address: 10.251.175.53,2409:8c20:1833:2000::afb:af34
attachnet1.default.ovn.kubernetes.io/logical_switch: subnet2019
attachnet1.default.ovn.kubernetes.io/mac_address: 8e:60:f7:05:4f:c8
attachnet1.default.ovn.kubernetes.io/pod_nic_type: veth-pair
attachnet1.default.ovn.kubernetes.io/provider_network: businessnet
attachnet1.default.ovn.kubernetes.io/routed: "true"
attachnet1.default.ovn.kubernetes.io/vlan_id: "2019"
k8s.v1.cni.cncf.io/network-status: |-
[{
"name": "kube-ovn",
"interface": "eth0",
"ips": [
"10.222.0.84",
"fd11:1111:1111::54"
],
"mac": "da:53:3d:28:73:07",
"default": true,
"dns": {},
"gateway": [
"10.222.0.1",
"fd11:1111:1111::1"
]
},{
"name": "default/attachnet1",
"interface": "net1",
"ips": [
"10.251.175.53",
"2409:8c20:1833:2000::afb:af34"
],
"mac": "8e:60:f7:05:4f:c8",
"dns": {},
"gateway": [
"fe80::1"
]
}]
k8s.v1.cni.cncf.io/networks: '[{"interface":"net1","name":"attachnet1","namespace":"default"}]'
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{"attachnet1.default.ovn.kubernetes.io/logical_switch":"subnet2019","k8s.v1.cni.cncf.io/networks":"[{\"interface\":\"net1\",\"name\":\"attachnet1\",\"namespace\":\"default\"}]"},"name":"multi-nic","namespace":"default"},"spec":{"containers":[{"command":["sh","-c","sleep infinity"],"image":"registry.paas/eki-plus/netshoot:latest","imagePullPolicy":"Never","name":"netshoot","securityContext":{"capabilities":{"add":["NET_ADMIN"]}}}],"nodeName":"csy-wx-pm-os01-eis-node02"}}
ovn.kubernetes.io/allocated: "true"
ovn.kubernetes.io/cidr: 10.222.0.0/18,fd11:1111:1111::/48
ovn.kubernetes.io/gateway: 10.222.0.1,fd11:1111:1111::1
ovn.kubernetes.io/ip_address: 10.222.0.84,fd11:1111:1111::54
ovn.kubernetes.io/logical_router: ovn-cluster
ovn.kubernetes.io/logical_switch: ovn-default
ovn.kubernetes.io/mac_address: da:53:3d:28:73:07
ovn.kubernetes.io/pod_nic_type: veth-pair
ovn.kubernetes.io/routed: "true"
creationTimestamp: "2024-06-11T09:35:21Z"
name: multi-nic
namespace: default
resourceVersion: "178083931"
uid: af619aee-cab6-42ed-9bcf-1f22c8922773
spec:
containers:
- command:
- sh
- -c
- sleep infinity
image: registry.paas/eki-plus/netshoot:latest
imagePullPolicy: Never
name: netshoot
resources: {}
default multi-nic 1/1 Running 0 45m 10.222.0.84 csy-wx-pm-os01-eis-node02 <none> <none>
multi-nic.default 10.222.0.84 fd11:1111:1111::54 da:53:3d:28:73:07 csy-wx-pm-os01-eis-node02 ovn-default
multi-nic.default.attachnet1.default.ovn 10.251.175.53 2409:8c20:1833:2000::afb:af34 8e:60:f7:05:4f:c8 csy-wx-pm-os01-eis-node02 subnet2019