projectcalico / calico

Cloud native networking and network security
https://docs.tigera.io/calico/latest/about/
Apache License 2.0
5.87k stars 1.31k forks source link

Feature Request: Support eBPF on Windows nodes #5149

Open olljanat opened 2 years ago

olljanat commented 2 years ago

Currently documentation says:

Hybrid clusters (with some eBPF nodes and some standard dataplane nodes) are not supported. (In such a cluster, NodePort traffic from eBPF nodes to non-eBPF nodes will be dropped.) This includes clusters with Windows nodes.

However eBPF support is now available for Windows using https://github.com/microsoft/ebpf-for-windows

caseydavenport commented 2 years ago

I believe @song-jiang has started looking into eBPF for Windows - it's still very early days though.

CC @fasaxc

fasaxc commented 2 years ago

@olljanat Just to set expectations, the windows support for eBPF is moving quickly but it's a long way from having all the features we need.

olljanat commented 2 years ago

@fasaxc OK that is nice to hear anyway.

Btw what is actual reason that documentation is saying that hybrid clusters are not supported? Is that only because of overlay or does it apply also to envs where Calico is doing BGP peering with ToR switches and outgoing NAT is disabled?

fasaxc commented 2 years ago

The issue is with BPF's NodePort implementation; it uses an overlay and it requires that there's a BPF program at the destination to "catch" the packet and decap it.

chocolat2000 commented 5 months ago

The issue is with BPF's NodePort implementation; it uses an overlay and it requires that there's a BPF program at the destination to "catch" the packet and decap it.

Does that means Linux pod to/from Windows Pod communication should work ? Only NodePort services won't be routed to Windows nodes ?

tomastigera commented 5 months ago

Only NodePort services won't be routed to Windows nodes ?

It will be routed there, but the windows nodes won't know what to do with that. Besides that, I think this should work, but we did not test a mixed cluster. We also have some development on windows ebpf side too, but that is rather low prio cc @frozenprocess

chocolat2000 commented 5 months ago

Thanks for the enlightenment. We have some mixed cluster, I soon as I can I'll do some tests.