deployments-k8s
deployments-k8s copied to clipboard
[help]question about nsm support sriov
-
In Kubernetes, any Pod can add a Network Service using an annotation: annotations: networkservicemesh.io: "kernel://my-networkservice-1/nsm-1" if we want nsm to support sriov, is there any change for the annotation.
-
when we try the sriov deployment in example directory, we have to prepare the sriov config first. what kind of resource will be created from the sriov config file. (hint, SriovNetworkNodePolicy or SriovNetwork)
-
when we try the SriovKernel2Noop usecase in example directory, we met some errors, how to solve it. root@ubuntu-be8216485a:~/nsm_sriov_test# kubectl logs -f nsc-kernel-7ff8f5dcc7-g5ffq -n ns-hlnx5 ... Aug 2 00:41:16.645 [FATA] [cmd:[/bin/app]] rpc error: code = PermissionDenied desc = no sufficient privileges
root@ubuntu-be8216485a:~/nsm_sriov_test# kubectl logs ponger-7675f85679-cglrb -n ns-hlnx5 ip: can't find device 'eno4' ip: can't find device 'eno4' ip: can't find device 'eno4'
- can nsm support mem_if or vhost?
/cc @glazychev-art @edwarnicke
In Kubernetes, any Pod can add a Network Service using an annotation: annotations: networkservicemesh.io: "kernel://my-networkservice-1/nsm-1"
If you're intrested in kernel mechanims then here as I can see need to add a sriovToken label. See at kernel sriov use-case example https://github.com/networkservicemesh/deployments-k8s/tree/main/examples/use-cases/SriovKernel2Noop
when we try the sriov deployment in example directory, we have to prepare the sriov config first. what kind of resource will be created from the sriov config file. (hint, SriovNetworkNodePolicy or SriovNetwork)
We're testing this on the packet cluster. I think this configuration of the cluster could be interested for you https://github.com/networkservicemesh/integration-k8s-packet/blob/main/.github/workflows/ci.yaml#L72
when we try the SriovKernel2Noop usecase in example directory, we met some errors, how to solve it. root@ubuntu-be8216485a:~/nsm_sriov_test# kubectl logs -f nsc-kernel-7ff8f5dcc7-g5ffq -n ns-hlnx5
This is intresting. Could you dump logs from your clusterr and attach them?
can nsm support mem_if or vhost?
Yes, but it is supporting by another forwarder (vpp). See at memif/vxlan examples https://github.com/networkservicemesh/deployments-k8s/tree/main/examples/basic
- I deploy sriov example, it succeeded (https://github.com/networkservicemesh/deployments-k8s/tree/main/examples/sriov)
root@ubuntu-be8216485a:~/nsm_sriov_test# kubectl get po -n nsm-system NAME READY STATUS RESTARTS AGE forwarder-vpp-dd5wr 1/1 Running 0 32m nsmgr-v7mvb 2/2 Running 0 32m registry-k8s-76fd9d68c5-d4ghs 1/1 Running 0 32m
- I deploy "Test SR-IOV kernel connection" (https://github.com/networkservicemesh/deployments-k8s/tree/main/examples/use-cases/SriovKernel2Noop) the status is shown below
root@ubuntu-be8216485a:~/nsm_sriov_test# kubectl get po -n ns-8s8v6 NAME READY STATUS RESTARTS AGE nsc-kernel-5f65c5b4-hmqk4 1/1 Running 0 7m56s nse-kernel-75ccfd5c9f-8z24t 1/1 Running 0 7m56s ponger-7675f85679-mwzk2 1/1 Running 6 (2m59s ago) 7m56s
while the pod of ponger is error, and the error log is as below
root@ubuntu-be8216485a:~/nsm_sriov_test# kubectl logs ponger-7675f85679-mwzk2 -n ns-8s8v6 ip: can't find device 'eno4' ip: can't find device 'eno4' ip: can't find device 'eno4' ip: ioctl 0x8913 failed: No such device ip: can't find device 'eno4' ip: can't find device 'eno4' ip: can't find device 'eno4' ip: can't find device 'eno4'
- the pod of nsc-kernel and nse-kernel is deployed successfully, but how to confirm that the pod is using sriov vf interface.