Antrea 0.1: Open vSwitch CNI for Kubernetes

Antrea 0.1: Open vSwitch CNI for Kubernetes

Introduction

On May 20, 2020, VMware released Antrea 0.1, the first version of an Open vSwitch (OVS)-based Container Network Interface (CNI) plugin for Kubernetes. Built on OVS, Antrea provides advanced networking features including network policies, service proxy, and integration with VMware’s cloud-native stack.

While Cilium and Calico dominated the CNI landscape, Antrea brought something different: the maturity and feature set of Open vSwitch, a battle-tested virtual switch used in OpenStack and SDN environments. For teams already familiar with OVS or running VMware infrastructure, Antrea offered a familiar networking model with Kubernetes-native integration.


Why Antrea?

  • Open vSwitch Foundation: Leverages OVS, a mature virtual switch with extensive feature set.
  • VMware Integration: Native integration with VMware vSphere and NSX-T for hybrid cloud deployments.
  • Advanced Features: Network policies, service proxy, and traffic monitoring in a single CNI.
  • Performance: OVS kernel datapath provides high-performance packet processing.

Core Architecture

  • Antrea Agent: Runs as a DaemonSet on each node, managing OVS switches and network policies.
  • Antrea Controller: Centralized control plane managing network policies and service discovery.
  • Open vSwitch: Handles packet forwarding, flow tables, and network policy enforcement.
  • OVS Kernel Datapath: Fast-path packet processing in the Linux kernel for performance.

Key Features

  1. Network Policies: Kubernetes NetworkPolicy enforcement using OVS flow rules.
  2. Service Proxy: Replaces kube-proxy with OVS-based load balancing.
  3. Traffic Monitoring: Flow-based monitoring and metrics export.
  4. IPAM: Automatic IP address management for pods and services.
  5. Encryption: IPsec-based encryption for pod-to-pod traffic.

Getting Started

Install Antrea:

kubectl apply -f https://raw.githubusercontent.com/vmware-tanzu/antrea/main/build/yamls/antrea.yml

Verify installation:

kubectl get pods -n kube-system -l app=antrea

Check Antrea agent status:

kubectl logs -n kube-system -l app=antrea-agent

Network Policy Enforcement

Antrea implements Kubernetes NetworkPolicy using OVS flow rules:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: web-allow-app
spec:
  podSelector:
    matchLabels:
      app: web
  policyTypes:
  - Ingress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: app
    ports:
    - protocol: TCP
      port: 8080

Antrea translates this into OVS flow rules that enforce the policy at the data plane level.


Service Proxy

Antrea can replace kube-proxy with OVS-based load balancing:

  • Flow-Based Load Balancing: Uses OVS flows to distribute traffic across service endpoints.
  • Session Affinity: Supports sticky sessions using OVS connection tracking.
  • Performance: OVS kernel datapath provides efficient packet processing.

VMware Integration

  • vSphere Integration: Antrea works seamlessly with VMware vSphere for hybrid deployments.
  • NSX-T Integration: Can integrate with NSX-T for advanced networking features.
  • Tanzu Kubernetes Grid: Antrea is the default CNI for VMware Tanzu Kubernetes Grid.

Comparison with Other CNIs

FeatureAntreaCalicoCilium
FoundationOVSBGP/iptableseBPF
Network PolicyOVS flowsiptables/eBPFeBPF
Service ProxyOVSkube-proxyeBPF
VMware IntegrationNativeLimitedLimited
PerformanceHighHighVery High

Use Cases

  • VMware Environments: Teams running VMware infrastructure benefit from native integration.
  • OpenStack Users: Organizations familiar with OVS can leverage existing expertise.
  • Hybrid Cloud: Antrea’s VMware integration simplifies hybrid cloud networking.
  • Network Policies: Teams needing advanced network policy features with OVS performance.

Operational Considerations

  • OVS Learning Curve: Teams unfamiliar with OVS may need training.
  • Resource Usage: OVS adds some overhead; monitor CPU and memory usage.
  • Troubleshooting: OVS flow debugging requires understanding OVS tools (ovs-ofctl, ovs-vsctl).
  • Upgrade Strategy: Antrea upgrades require careful coordination; test in non-production first.

Common Patterns

  • Network Policy Enforcement: Use Antrea’s NetworkPolicy support for micro-segmentation.
  • Service Load Balancing: Replace kube-proxy with Antrea’s OVS-based service proxy.
  • Traffic Monitoring: Use Antrea’s flow monitoring for network visibility.
  • Hybrid Deployments: Integrate Antrea with VMware vSphere for hybrid cloud networking.

Limitations (0.1)

  • Early Software: 0.1 is an initial release; expect API changes and feature additions.
  • OVS Dependency: Requires OVS kernel modules; may not work on all Linux distributions.
  • Documentation: Early documentation may be incomplete; rely on examples and community.
  • Ecosystem: Fewer third-party integrations compared to Calico or Cilium.

Looking Ahead

Antrea 0.1 established the foundation for:

  • Performance Improvements: Continued OVS optimizations and kernel datapath enhancements.
  • Advanced Features: Support for more network policy features and service mesh integration.
  • VMware Integration: Enhanced integration with VMware’s cloud-native stack.
  • CNCF Contribution: Antrea would later be contributed to CNCF.

Summary

AspectDetails
Release DateMay 20, 2020
Key InnovationsOVS-based CNI, VMware integration, unified networking and policy
SignificanceBrought Open vSwitch’s maturity to Kubernetes with VMware-native integration

Antrea 0.1 demonstrated that Open vSwitch’s proven networking capabilities could be applied to Kubernetes. By combining OVS’s feature set with Kubernetes-native APIs, it created a CNI option that appealed to teams with VMware infrastructure or OVS expertise, while providing advanced networking features out of the box.

Need help with Kubernetes in production?

Health Check, Launch, or Managed Support — clear packages for SMB teams. Or tell us what is on fire.