apiVersion: "k8s.cni.cncf.io/v1"  
kind: NetworkAttachmentDefinition  
metadata:  
 name: macvlan8  
 namespace: multicast  
spec:  
 config: '{  
   "cniVersion": "0.3.1",  
   "plugins": [  
     {  
       "type": "macvlan",  
       "capabilities": { "ips": true },  
       "master": "eth1",  
       "mode": "bridge",  
       "ipam": {  
         "type": "static",  
         "addresses": [  
             {  
                 "address": "192.168.25.62/22",  
                 "gateway": "192.168.27.254"  
             }  
         ],  
         "routes": [  
             { "dst": "192.168.24.0/22", "gw": "192.168.27.254" },  
             { "dst": "192.168.5.0/24" }  
         ]  
       }  
     }  
   ]  
 }'

示例负载:

---  
apiVersion: apps/v1  
kind: Deployment  
metadata:  
 labels:  
   app: demo8  
 name: demo8  
 namespace: multicast  
spec:  
 replicas: 1  
 selector:  
   matchLabels:  
     app: demo8  
 template:  
   metadata:  
     annotations:  
       k8s.v1.cni.cncf.io/networks: macvlan8  
     labels:  
       app: demo8  
   spec:  
     containers:  
       - name: demo8  
         command:    
           - /bin/sh  
         args:  
           - '-c'  
           - "while true; do echo 1;sleep 10; done"  
         image: '192.168.25.9/hello_multicast_iperf:1_aarch64'  
         imagePullPolicy: Always  
         resources:  
           limits:  
             cpu: '2'  
           requests:  
             cpu: '2'

测试效果:

[root@node1 multus]# kubectl -n multicast exec -it demo8-578986878b-6m5nr -- sh
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
3: eth0@if75: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1430 qdisc noqueue state UP 
    link/ether 02:0c:78:14:6e:f9 brd ff:ff:ff:ff:ff:ff
    inet 10.233.71.42/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::c:78ff:fe14:6ef9/64 scope link 
       valid_lft forever preferred_lft forever
4: net1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether ca:35:41:d3:92:3e brd ff:ff:ff:ff:ff:ff
    inet 192.168.25.62/22 brd 192.168.27.255 scope global net1
       valid_lft forever preferred_lft forever
    inet6 fe80::c835:41ff:fed3:923e/64 scope link 
       valid_lft forever preferred_lft forever
/ # ip r
default via 169.254.1.1 dev eth0 
169.254.1.1 dev eth0 scope link 
192.168.5.0/24 via 192.168.27.254 dev net1 
192.168.24.0/22 via 192.168.27.254 dev net1 
192.168.24.0/22 dev net1 scope link  src 192.168.25.62

References

最后修改:2024 年 11 月 20 日
如果觉得我的文章对你有用,请随意赞赏