Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

multus v4 thick mode breaks NetworkAttachmentDefinition with CNI config file #1238

Open
leerin-ruby opened this issue Mar 7, 2024 · 1 comment

Comments

@leerin-ruby
Copy link

What happend:
I used multus + istio cni for app sidecar injection, while for the injection, pod reports error with "ERRORED: error configuring pod [nrd/nrd-v1-77c6dbbd48-586x5] networking: Multus: [nrd/nrd-v1-77c6dbbd48-586x5/4c1a126c-c889-472e-9e44-46193c8cfaa3]: error loading k8s delegates k8s args: TryLoadPodDelegates: error in getting k8s network for pod: GetNetworkDelegates: failed getting the delegate: GetCNIConfig: err in GetCNIConfigFromFile: no network available in the name istio-cni in cni dir /host/etc/cni/net.d"

Seems multus CNI directory where other CNI that is used by multus as net-attach-def without config was changed from "/etc/cni/multus/net.d" to "/host/etc/cni/net.d" in multus v4 thick mode.

What you expected to happen:
keep the directory as "/etc/cni/multus/net.d" the same as v3 and v4 thin mode

How to reproduce it (as minimally and precisely as possible):
install multus v4 thick
install istio with cni enabled
install a app with sidecar injection

Anything else we need to know?:
from the source code, seems the "confDir" in deamonset config is change to "/host/etc/cni/net.d" in v4.0.2 and was removed in master

Environment:
tanzu2.5

  • Multus version
    image path and image ID (from 'docker images')
    Image: ghcr.io/k8snetworkplumbingwg/multus-cni:snapshot-thick
    Image ID: ghcr.io/k8snetworkplumbingwg/multus-cni@sha256:e47cac8a15cc2f5f7e25a92bcd56e508888d2d7bed25b38aae5b0bb09fb84c1c

  • Kubernetes version (use kubectl version): 1.28

  • Primary CNI for Kubernetes cluster: calico

  • OS (e.g. from /etc/os-release): tkg25-cni-md-0-gqrxm-rtxh5 6.1.62-6.ph5

  • File of '/etc/cni/net.d/'
    00-multus.conf 10-calico.conflist calico-kubeconfig multus.d

  • File of '/etc/cni/multus/net.d'
    istio-cni.conf ZZZ-istio-cni-kubeconfig

  • NetworkAttachment info (use kubectl get net-attach-def -o yaml)
    `apiVersion: v1
    items:

  • apiVersion: k8s.cni.cncf.io/v1
    kind: NetworkAttachmentDefinition
    metadata:
    creationTimestamp: "2024-03-06T08:40:55Z"
    generation: 1
    name: istio-cni
    namespace: default
    resourceVersion: "280413"
    uid: e41aa7e1-a5de-439e-932f-0e41b2268f25
    spec:
    config: ""
    kind: List
    metadata:
    resourceVersion: ""
    `

  • Target pod yaml info (with annotation, use kubectl get pod <podname> -o yaml)

  • Other log outputs (if you use multus logging)

@dougbtv
Copy link
Member

dougbtv commented Mar 14, 2024

I think that what you should do is modify the daemonset to add another mount point that points at /etc/cni/multus/net.d

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants