2020-09-23 08:54:19 +00:00
|
|
|
# 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.
|
2021-02-26 09:46:31 +00:00
|
|
|
Example manifests can be found [in the manifests directory](https://github.com/squat/kilo/tree/main/manifests).
|
2020-09-23 08:54:19 +00:00
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
The behavior of `kg` can be configured using the command line flags listed below.
|
|
|
|
|
|
|
|
[embedmd]:# (../tmp/help.txt)
|
|
|
|
```txt
|
2021-02-28 17:33:01 +00:00
|
|
|
Usage of bin//linux/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
|
|
|
|
--create-interface Should kilo create an interface on startup? (default true)
|
|
|
|
--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")
|
2021-08-07 10:42:36 +00:00
|
|
|
--mtu uint The MTU of the WireGuard interface created by Kilo. (default 1420)
|
2021-02-28 17:33:01 +00:00
|
|
|
--port uint The port over which WireGuard peers should communicate. (default 51820)
|
|
|
|
--resync-period duration How often should the Kilo controllers reconcile? (default 30s)
|
|
|
|
--subnet string CIDR from which to allocate addresses for WireGuard interfaces. (default "10.4.0.0/16")
|
|
|
|
--topology-label string Kubernetes node label used to group nodes into logical locations. (default "topology.kubernetes.io/region")
|
|
|
|
--version Print version and exit
|
2020-09-23 08:54:19 +00:00
|
|
|
```
|