|
@@ -0,0 +1,53 @@
|
|
|
|
|
+# 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](https://github.com/squat/kilo/tree/master/manifests).
|
|
|
|
|
+
|
|
|
|
|
+## Usage
|
|
|
|
|
+
|
|
|
|
|
+The behavior of `kg` can be configured using the command line flags listed below.
|
|
|
|
|
+
|
|
|
|
|
+[embedmd]:# (../tmp/help.txt)
|
|
|
|
|
+```txt
|
|
|
|
|
+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
|
|
|
|
|
+```
|