Skip to content

enable-overlay=false seems to break my networking (IPv6 only) #1834

Closed
@mhymny

Description

@mhymny

What happened?

First of all, I really don't know too much about the internals, so this might as well(and I hope) be an configuration error on my side.
I am testing a 3 Node Cluster with IPv6 only networking.
I am running 3 virtual machines, with 2 interfaces each, one interface is directly attached to the host interface, and the other interface is connected to a bridge. So ideally all in-cluster communication happens around that bridge.
I have a ULA IPv6 Space(assume fd00:0000:0000:1000::/56) that is configured as follows:
fd00:0000:0000:1000::/59 - nodes
fd00:0000:0000:1020::/59 - Virtual IPs(also API Server)
fd00:0000:0000:1040::/108 - Service CIDR
fd00:0000:0000:10c0::/58 - Pod CIDR

Since everything is connected using said bridge, I configured for each node the following IP addresses and routes on the interface that is connected to the bridge:
node1:
address:
fd00:0000:0000:1000::1/64
routes:
fd00:0000:0000:1000::/59
fd00:0000:0000:1020::/59
node2:
address:
fd00:0000:0000:1001::1/64
routes:
fd00:0000:0000:1000::/59
fd00:0000:0000:1020::/59
node3:
address:
fd00:0000:0000:1002::1/64
routes:
fd00:0000:0000:1000::/59
fd00:0000:0000:1020::/59

Since everything happens on that bridge I thought I might as well try out the pod-to-pod and pod-to-service communication without an overlay, hence I set --advertise-cluster-ip=true and --enable-overlay=false, thinking kube-router would pass around the routes using iBGP.

What did you expect to happen?

I expected the networking to work without an overlay. It does work when I use the overlay.

How can we reproduce the behavior you experienced?

Steps to reproduce the behavior:

Basically a setup like I had above, this is my deployment for kube-router:

apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-router-cfg
  namespace: kube-system
  labels:
    tier: node
    k8s-app: kube-router
data:
  cni-conf.json: |
    {
       "cniVersion":"0.3.0",
       "name":"mynet",
       "plugins":[
          {
             "name":"kubernetes",
             "type":"bridge",
             "bridge":"kube-bridge",
             "isDefaultGateway":true,
             "hairpinMode":true,
             "ipam":{
                "type":"host-local"
             }
          }
       ]
    }
  kubeconfig: |
    apiVersion: v1
    kind: Config
    clusterCIDR: "fd00:0000:0000:10c0::/58"
    clusters:
    - name: cluster
      cluster:
        certificate-authority: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
        server: https://[fd00:0000:0000:1020::1]:6443
    users:
    - name: kube-router
      user:
        tokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
    contexts:
    - context:
        cluster: cluster
        user: kube-router
      name: kube-router-context
    current-context: kube-router-context

---
apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    k8s-app: kube-router
    tier: node
  name: kube-router
  namespace: kube-system
spec:
  selector:
    matchLabels:
      k8s-app: kube-router
      tier: node
  template:
    metadata:
      labels:
        k8s-app: kube-router
        tier: node
    spec:
      priorityClassName: system-node-critical
      serviceAccountName: kube-router
      containers:
      - name: kube-router
        image: docker.io/cloudnativelabs/kube-router
        imagePullPolicy: Always
        args:
        - "--run-router=true"
        - "--run-firewall=true"
        - "--run-service-proxy=true"
        - "--enable-ipv4=false"
        - "--enable-ipv6=true"
        - "--service-cluster-ip-range=fd00:0000:0000:1040::/108"
        - "--bgp-graceful-restart=true"
        - "--kubeconfig=/var/lib/kube-router/kubeconfig"
        - "--router-id=generate"
        - "--advertise-cluster-ip=true"
        - "--enable-overlay=false"
...

System Information (please complete the following information)

  • Kube-Router Version (kube-router --version): Running kube-router version v2.5.0, built on 2025-02-14T20:21:02+0000, go1.23.6
  • Kube-Router Parameters: See deployment
  • Kubernetes Version (kubectl version) : v1.32.0
  • Cloud Type: on premise
  • Kubernetes Deployment Type: Talos
  • Kube-Router Deployment Type: DaemonSet
  • Cluster Size: 3 Nodes

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions