k8snetworkplumbingwg / multus-cni

A CNI meta-plugin for multi-homed pods in Kubernetes
Apache License 2.0
2.27k stars 577 forks source link

Is multus-cni v3.9.3-thick-amd64 THICK or THIN Plugin? #1292

Open hikkart opened 1 month ago

hikkart commented 1 month ago

Hi Team,

Configured multus-cni with Daemonset-thick-plugin yaml v3.9.3 with container Image: v3.9.3-thick-amd64.

Daemonset-thick-plugin yaml: https://github.com/k8snetworkplumbingwg/multus-cni/blob/v3.9.3/deployments/multus-daemonset-thick-plugin.yml Container Image: https://github.com/k8snetworkplumbingwg/multus-cni/pkgs/container/multus-cni/61872617?tag=v3.9.3-thick-amd64

Expected multus-shim (as in 4.0.2) but ended up with multus binary like thin plugin.

Also found that config yaml shows type=multus and configuration is similar to THIN plugin config.

Is multus-cni v3.9.3-thick-amd64 THICK or THIN Plugin?

Kindly clarify. Thank you.

root@vm0:~# /opt/cni/bin/multus --version
multus-cni version:v3.9.3, commit:80c0f6f0c4ed85ab5887e81cb5ee3294995ac93c, date:2023-01-05T16:00:40+00:00

root@vm0:~# cat /etc/cni/net.d/00-multus.conf
{
    "capabilities": {
        "bandwidth": true,
        "portMappings": true
    },
    "cniVersion": "0.3.1",
    "logLevel": "verbose",
    "logToStderr": true,
    "kubeconfig": "/etc/cni/net.d/multus.d/multus.kubeconfig",
    "name": "multus-cni-network",
    "type": "multus",
    "delegates": [
        {
            "cniVersion": "0.3.1",
            "name": "k8s-pod-network",
            "plugins": [
                {
                    "datastore_type": "kubernetes",
                    "ipam": {
                        "subnet": "usePodCidr",
                        "type": "host-local"
                    },
                    "kubernetes": {
                        "kubeconfig": "/etc/cni/net.d/calico-kubeconfig"
                    },
                    "log_file_path": "/var/log/calico/cni/cni.log",
                    "log_level": "info",
                    "mtu": 1450,
                    "nodename": "vm0",
                    "policy": {
                        "type": "k8s"
                    },
                    "type": "calico"
                },
                {
                    "capabilities": {
                        "portMappings": true
                    },
                    "snat": true,
                    "type": "portmap"
                },
                {
                    "capabilities": {
                        "bandwidth": true
                    },
                    "type": "bandwidth"
                }
            ]
        }
    ]
}
dougbtv commented 1 month ago

Version 3.9.3 can actually run in both thick and thin modes.

Check out the deployment yaml in the release-v3 branch @ https://github.com/k8snetworkplumbingwg/multus-cni/tree/release-v3/deployments

hikkart commented 1 month ago

Thanks for the reply. Yes, v3.9.3 is also having two separate deployment yamls for thin and thick. Even there are few difference between two yamls too. https://github.com/k8snetworkplumbingwg/multus-cni/tree/v3.9.3/deployments

As mentioned above, I have used thick-plugin's deployment yaml and expected the type to show as multus-shim (as in later v4.0.x). But still it is showing as mutlus as thin plugin. Hence the confusion raised. Is it only the naming is updated for thick ? Thanks for the support.