kilo/docs/kg.md
Lucas Servén Marín 0cc1a2ff8c
docs,website: add doc for kg
This commit adds a doc for `kg`, the Kilo agent that runs on every node
in the mesh. This includes: the doc itself, files needed for the
website, and tooling to generate the document using `embedmd`.

Signed-off-by: Lucas Servén Marín <lserven@gmail.com>
2020-09-23 11:38:25 +02:00

2.2 KiB

kg

kg is the Kilo agent that runs on every Kubernetes node in a Kilo mesh. It performs several key functions, including:

  • adding the node to the Kilo mesh;
  • installing CNI configuration on the node;
  • configuring the WireGuard network interface; and
  • maintaining routing table entries and iptables rules.

kg is typically installed on all nodes of a Kubernetes cluster using a DaemonSet. Example manifests can be found in the manifests directory.

Usage

The behavior of kg can be configured using the command line flags listed below.

Usage of bin/amd64/kg:
  -backend string
    	The backend for the mesh. Possible values: kubernetes (default "kubernetes")
  -clean-up-interface
    	Should Kilo delete its interface when it shuts down?
  -cni
    	Should Kilo manage the node's CNI configuration? (default true)
  -cni-path string
    	Path to CNI config. (default "/etc/cni/net.d/10-kilo.conflist")
  -compatibility string
    	Should Kilo run in compatibility mode? Possible values: flannel
  -encapsulate string
    	When should Kilo encapsulate packets within a location? Possible values: never, crosssubnet, always (default "always")
  -hostname string
    	Hostname of the node on which this process is running.
  -interface string
    	Name of the Kilo interface to use; if it does not exist, it will be created. (default "kilo0")
  -kubeconfig string
    	Path to kubeconfig.
  -listen string
    	The address at which to listen for health and metrics. (default ":1107")
  -local
    	Should Kilo manage routes within a location? (default true)
  -log-level string
    	Log level to use. Possible values: all, debug, info, warn, error, none (default "info")
  -master string
    	The address of the Kubernetes API server (overrides any value in kubeconfig).
  -mesh-granularity string
    	The granularity of the network mesh to create. Possible values: location, full (default "location")
  -port uint
    	The port over which WireGuard peers should communicate. (default 51820)
  -subnet string
    	CIDR from which to allocate addresses for WireGuard interfaces. (default "10.4.0.0/16")
  -version