angelnu / pod-gateway

Container image used to set a pod gateway
Apache License 2.0
56 stars 29 forks source link

pod-gateway

This container includes scripts used to route trafic from pods through another gateway pod. Typically the gateway pod then runs a openvpn client to forward the traffic.

This container is injected by the gateway-admision-controller so that existing K8S PODs can be extended to route their trafic through a VPN. Check the README to learn how to use it.

The connection between the pods is done via a vxlan. The gatway provides a DHCP server to let client pods to get automatically an IP.

Ougoing traffic is masqueraded (SNAT). It is also possible to define port forwardind so ports of client pods can be reached from the outside.

The .github folder will get PRs from this template so you can apply the latest workflows.

Design

Client PODs are connected through a tunnel to the gateway POD and route default traffic and DNS queries through it. The tunnel is implemented as VXLAN overlay.

This container provides the required init/sidecar containers for clients and gateway PODs:

Settings are expected in the /config folder - see examples under config:

Prereqs

You need to create the following secrets (not needed within the k8s-at-home org - there we use org-wide secrets):

How to build

  1. Build the container
    make

Testing requires multiple containers - see the gateway-admision-controller and check the Makefile for other build targets.