Skip to content

Node networking

Addresses

Every MetaKube Node has one address of type InternalIP: the private IP in the OpenStack network of the cluster.

Nodes also get an address of type ExternalIP when the MachineDeployment configuration enables floating IPs.

Pod traffic

Nodes act as gateways for traffic in the Pod network.

Floating IPs

MetaKube can manage floating IPs for each server of a MachineDeployment.

This has certain implications you should consider:

  1. Node acts as NAT gateway directly

    The source IP of nodes and their Pods differs from other Nodes. This may be desirable, for example, to avoid certain IP-based rate limits of certain APIs.

    It also avoids port collisions for egress at the shared NAT gateway (router).

  2. Node ports are open to the public

    This may be intentional and the reason to use floating IPs. But also consider other ports you may not want to expose.

  3. Floating IP costs

Dedicated floating IP Pool

If you need all egress from your cluster to originate from a well-known CIDR, consider a dedicated floating IP Pool.

Unmanaged floating IPs (deprecated)

Warning

This behavior is deprecated. We are looking to replace this functionality with a more explicit mechanism.

When free floating IPs exist in the project, MetaKube first attempts to associate them with machine ports.

Network peers and required connections

The nodes must be able to communicate with the following peers.

Egress

Info

MetaKube does not restrict any egress by default.

  • Apiserver
  • Konnectivity
  • DNS resolvers
  • OpenStack API
  • Container image registries and package repositories

Ingress

Info

Traffic from the following peers is allowed by default through security group rules:

  • Other Nodes to facilitate Pod networking
  • (Optional) Node ports (30000-32767) from Node subnet for ports of OpenStack Octavia Load Balancers
  • (Optional) Node ports (30000-32767) from external networks if used