Networking Requirements for Host Gateway (L2bridge)

This section describes how to configure custom Windows clusters that are using Host Gateway (L2bridge) mode.

Disabling Private IP Address Checks

If you are using Host Gateway (L2bridge) mode and hosting your nodes on any of the cloud services listed below, you must disable the private IP address checks for both your Linux or Windows hosts on startup. To disable this check for each node, follow the directions provided by each service below.

Service Directions to disable private IP address checks

Amazon EC2

Disabling Source/Destination Checks

Google GCE

Enabling IP Forwarding for Instances (By default, a VM cannot forward a packet originated by another VM)

Azure VM

Enable or Disable IP Forwarding

Cloud-hosted VM Routes Configuration

If you are using the Host Gateway (L2bridge) backend of Flannel, all containers on the same node belong to a private subnet, and traffic routes from a subnet on one node to a subnet on another node through the host network.

  • When worker nodes are provisioned on AWS, virtualization clusters, or bare metal servers, make sure they belong to the same layer 2 subnet. If the nodes don’t belong to the same layer 2 subnet, host-gw networking will not work.

  • When worker nodes are provisioned on GCE or Azure, they are not on the same layer 2 subnet. Nodes on GCE and Azure belong to a routable layer 3 network. Follow the instructions below to configure GCE and Azure so that the cloud network knows how to route the host subnets on each node.

To configure host subnet routing on GCE or Azure, first run the following command to find out the host subnets on each worker node:

kubectl get nodes -o custom-columns=nodeName:.metadata.name,nodeIP:status.addresses[0].address,routeDestination:.spec.podCIDR

Then follow the instructions for each cloud provider to configure routing rules for each node:

Service Instructions

Google GCE

For GCE, add a static route for each node: Adding a Static Route.

Azure VM

For Azure, create a routing table: Custom Routes: User-defined.