k8snetworkplumbingwg/multus-cni

Communication between pods running on multiple nodes

nileshkumar-001 opened this issue · 3 comments

Has anyone got communication between pods working with pods on different nodes to communicate with each other using the NIC added by Multus,

Could you please explain more because your description is not enough to troubleshooting.
Appreciated if you fill following information. thanks.


What happend:

What you expected to happen:

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

Environment:

  • Multus version
    image path and image ID (from 'docker images')
  • Kubernetes version (use kubectl version):
  • Primary CNI for Kubernetes cluster:
  • OS (e.g. from /etc/os-release):
  • File of '/etc/cni/net.d/'
  • File of '/etc/cni/multus/net.d'
  • NetworkAttachment info (use kubectl get net-attach-def -o yaml)
  • Target pod yaml info (with annotation, use kubectl get pod <podname> -o yaml)
  • Other log outputs (if you use multus logging)

Environment Setup: Azure Kubernetes Service (AKS) with Azure CNI Overlay as default CNI

What happened: Deployed AKS cluster with Azure CNI Overlay then deployed Multus thick client from https://github.com/k8snetworkplumbingwg/multus-cni/blob/a373a2286d3f74d2b0ba05f2592c2820f0087053/deployments/multus-daemonset-thick.yml then deployed Whereabouts for IPAM

https://github.com/k8snetworkplumbingwg/whereabouts/blob/061b1aca2c1a6789f4a8d7d6450496cb44a22acf/doc/crds/daemonset-install.yaml
https://github.com/k8snetworkplumbingwg/whereabouts/blob/3b01e1992f555cdb71f976dcabad349aedc21619/doc/crds/whereabouts.cni.cncf.io_ippools.yaml
https://github.com/k8snetworkplumbingwg/whereabouts/blob/3b01e1992f555cdb71f976dcabad349aedc21619/doc/crds/whereabouts.cni.cncf.io_overlappingrangeipreservations.yaml

Deployed a pod with the annotations to add the second network card , second network card gets added and gets assigned an IP but Pod 1 on Node 1 can communicate with Pod 2 on Node 1 but cannot communicate with Pod 3 on Node 2

What you expected to happen: I expect that pods on any node can communicate with each other on the second network interface. I suspect that routing information needs to be added but how can this be automated.

How to reproduce it (as minimally and precisely as possible): Running the above deployment steps and applying the 2 yaml files below

Anything else we need to know?:

Environment: Azure

Multus version: v4.0.2
image path and image ID (from 'docker images')
Kubernetes version (use kubectl version): 127.7
Primary CNI for Kubernetes cluster: Azure CNI with Overlay
OS (e.g. from /etc/os-release):
File of '/etc/cni/net.d/'
File of '/etc/cni/multus/net.d'
NetworkAttachment info (use kubectl get net-attach-def -o yaml)

cat <<EOF | kubectl create -f -
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
  name: whereabouts-conf
spec:
  config: '{
      "cniVersion": "0.3.0",
      "name": "whereaboutsexample",
      "type": "macvlan",
      "master": "eth0",
      "mode": "bridge",
      "ipam": {
        "type": "whereabouts",
        "range": "192.168.2.225/28"
      }
    }'
EOF

Target pod yaml info (with annotation, use kubectl get pod -o yaml)

cat <<EOF | kubectl create -f -
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: busybox-replicaset-02
  annotations:
    k8s.v1.cni.cncf.io/networks: whereabouts-conf
spec:
  replicas: 6  # Set the desired number of replicas
  selector:
    matchLabels:
      app: busybox-02
  template:
    metadata:
      labels:
        app: busybox-02
      annotations:
        k8s.v1.cni.cncf.io/networks: whereabouts-conf
    spec:
      containers:
      - name: busybox-02
        image: busybox:latest
        command: ["/bin/sh", "-c", "while true; do echo 'Hello from BusyBox'; sleep 10; done"]
EOF

Other log outputs (if you use multus logging)