...
Apply the NetworkAttachmentDefinition with:
microk8s kubectl apply -f <filename>.yaml
Deploy Pods Using Multiple Networks
After Multus is installed and your custom networks are defined, you can deploy pods with multiple network interfaces. Here's an example pod spec using two networks (one default and one from Multus):
Code Block language yaml title Test gige camera access apiVersion: v1 kind: Pod metadata: name: pod-with-multus namespace: testbeamline annotations: k8s.v1.cni.cncf.io/networks: gigevision-network spec: containers: - name: app-container image: baltig.infn.it:4567/epics-containers/infn-epics-ioc:latest command: ["/bin/sh", "-c", "sleep 3600"]
Verify Pod's Network Interfaces & camera access
Once the pod is running, you can verify that it has multiple network interfaces by logging into the pod and using the
ip
command:microk8s kubectl exec -it pod-with-multus -n testbeamline -- ip a
microk8s kubectl Code Block language bash title expected output 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 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@if1758: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UP group default link/ether ee:b2:9c:77:b3:6e brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.1.24.151/32 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::ecb2:9cff:fe77:b36e/64 scope link valid_lft forever preferred_lft forever 4: net1@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 22:32:b3:ae:55:5e brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 192.168.115.220/24 brd 192.168.115.255 scope global net1 valid_lft forever preferred_lft forever inet6 fe80::2032:b3ff:feae:555e/64 scope link valid_lft forever preferred_lft forever
microk8s kubectl exec -it pod-with-multus -n testbeamline -- arv-tool-0.8