cilium-agent

Run the cilium agent

  1. cilium-agent [flags]

Options

  1. --agent-health-port int TCP port for agent health status API (default 9876)
  2. --agent-labels strings Additional labels to identify this agent
  3. --allocator-list-timeout duration Timeout for listing allocator state before exiting (default 3m0s)
  4. --allow-icmp-frag-needed Allow ICMP Fragmentation Needed type packets for purposes like TCP Path MTU. (default true)
  5. --allow-localhost string Policy when to allow local stack to reach local endpoints { auto | always | policy } (default "auto")
  6. --annotate-k8s-node Annotate Kubernetes node (default true)
  7. --api-rate-limit map API rate limiting configuration (example: --rate-limit endpoint-create=rate-limit:10/m,rate-burst:2) (default map[])
  8. --arping-refresh-period duration Period for remote node ARP entry refresh (set 0 to disable) (default 5m0s)
  9. --auto-create-cilium-node-resource Automatically create CiliumNode resource for own node on startup (default true)
  10. --auto-direct-node-routes Enable automatic L2 routing between nodes
  11. --bgp-announce-lb-ip Announces service IPs of type LoadBalancer via BGP
  12. --bgp-config-path string Path to file containing the BGP configuration (default "/var/lib/cilium/bgp/config.yaml")
  13. --bpf-ct-global-any-max int Maximum number of entries in non-TCP CT table (default 262144)
  14. --bpf-ct-global-tcp-max int Maximum number of entries in TCP CT table (default 524288)
  15. --bpf-ct-timeout-regular-any duration Timeout for entries in non-TCP CT table (default 1m0s)
  16. --bpf-ct-timeout-regular-tcp duration Timeout for established entries in TCP CT table (default 6h0m0s)
  17. --bpf-ct-timeout-regular-tcp-fin duration Teardown timeout for entries in TCP CT table (default 10s)
  18. --bpf-ct-timeout-regular-tcp-syn duration Establishment timeout for entries in TCP CT table (default 1m0s)
  19. --bpf-ct-timeout-service-any duration Timeout for service entries in non-TCP CT table (default 1m0s)
  20. --bpf-ct-timeout-service-tcp duration Timeout for established service entries in TCP CT table (default 6h0m0s)
  21. --bpf-fragments-map-max int Maximum number of entries in fragments tracking map (default 8192)
  22. --bpf-lb-acceleration string BPF load balancing acceleration via XDP ("native", "disabled") (default "disabled")
  23. --bpf-lb-algorithm string BPF load balancing algorithm ("random", "maglev") (default "random")
  24. --bpf-lb-bypass-fib-lookup Enable FIB lookup bypass optimization for nodeport reverse NAT handling (default true)
  25. --bpf-lb-dev-ip-addr-inherit string Device name which IP addr is inherited by devices running LB BPF program (--devices)
  26. --bpf-lb-dsr-dispatch string BPF load balancing DSR dispatch method ("opt", "ipip") (default "opt")
  27. --bpf-lb-dsr-l4-xlate string BPF load balancing DSR L4 DNAT method for IPIP ("frontend", "backend") (default "frontend")
  28. --bpf-lb-external-clusterip Enable external access to ClusterIP services (default false)
  29. --bpf-lb-maglev-hash-seed string Maglev cluster-wide hash seed (base64 encoded) (default "JLfvgnHc2kaSUFaI")
  30. --bpf-lb-maglev-table-size uint Maglev per service backend table size (parameter M) (default 16381)
  31. --bpf-lb-map-max int Maximum number of entries in Cilium BPF lbmap (default 65536)
  32. --bpf-lb-mode string BPF load balancing mode ("snat", "dsr", "hybrid") (default "snat")
  33. --bpf-lb-rss-ipv4-src-cidr string BPF load balancing RSS outer source IPv4 CIDR prefix for IPIP
  34. --bpf-lb-rss-ipv6-src-cidr string BPF load balancing RSS outer source IPv6 CIDR prefix for IPIP
  35. --bpf-map-dynamic-size-ratio float Ratio (0.0-1.0) of total system memory to use for dynamic sizing of CT, NAT and policy BPF maps. Set to 0.0 to disable dynamic BPF map sizing (default: 0.0)
  36. --bpf-nat-global-max int Maximum number of entries for the global BPF NAT table (default 524288)
  37. --bpf-neigh-global-max int Maximum number of entries for the global BPF neighbor table (default 524288)
  38. --bpf-policy-map-max int Maximum number of entries in endpoint policy map (per endpoint) (default 16384)
  39. --bpf-root string Path to BPF filesystem
  40. --bpf-sock-rev-map-max int Maximum number of entries for the SockRevNAT BPF map (default 262144)
  41. --certificates-directory string Root directory to find certificates specified in L7 TLS policy enforcement (default "/var/run/cilium/certs")
  42. --cgroup-root string Path to Cgroup2 filesystem
  43. --cluster-id int Unique identifier of the cluster
  44. --cluster-name string Name of the cluster (default "default")
  45. --clustermesh-config string Path to the ClusterMesh configuration directory
  46. --config string Configuration file (default "$HOME/ciliumd.yaml")
  47. --config-dir string Configuration directory that contains a file for each option
  48. --conntrack-gc-interval duration Overwrite the connection-tracking garbage collection interval
  49. --crd-wait-timeout duration Cilium will exit if CRDs are not available within this duration upon startup (default 5m0s)
  50. --datapath-mode string Datapath mode name (default "veth")
  51. -D, --debug Enable debugging mode
  52. --debug-verbose strings List of enabled verbose debug groups
  53. --devices strings List of devices facing cluster/external network (used for BPF NodePort, BPF masquerading and host firewall); supports '+' as wildcard in device name, e.g. 'eth+'
  54. --direct-routing-device string Device name used to connect nodes in direct routing mode (required only by BPF NodePort; if empty, automatically set to a device with k8s InternalIP/ExternalIP or with a default route)
  55. --disable-cnp-status-updates Do not send CNP NodeStatus updates to the Kubernetes api-server (recommended to run with "cnp-node-status-gc-interval=0" in cilium-operator)
  56. --disable-conntrack Disable connection tracking
  57. --disable-endpoint-crd Disable use of CiliumEndpoint CRD
  58. --disable-iptables-feeder-rules strings Chains to ignore when installing feeder rules.
  59. --dns-max-ips-per-restored-rule int Maximum number of IPs to maintain for each restored DNS rule (default 1000)
  60. --egress-masquerade-interfaces string Limit egress masquerading to interface selector
  61. --egress-multi-home-ip-rule-compat Offset routing table IDs under ENI IPAM mode to avoid collisions with reserved table IDs. If false, the offset is performed (new scheme), otherwise, the old scheme stays in-place.
  62. --enable-auto-protect-node-port-range Append NodePort range to net.ipv4.ip_local_reserved_ports if it overlaps with ephemeral port range (net.ipv4.ip_local_port_range) (default true)
  63. --enable-bandwidth-manager Enable BPF bandwidth manager
  64. --enable-bpf-clock-probe Enable BPF clock source probing for more efficient tick retrieval
  65. --enable-bpf-masquerade Masquerade packets from endpoints leaving the host with BPF instead of iptables
  66. --enable-bpf-tproxy Enable BPF-based proxy redirection, if support available
  67. --enable-custom-calls Enable tail call hooks for custom eBPF programs
  68. --enable-egress-gateway Enable egress gateway
  69. --enable-endpoint-health-checking Enable connectivity health checking between virtual endpoints (default true)
  70. --enable-endpoint-routes Use per endpoint routes instead of routing via cilium_host
  71. --enable-external-ips Enable k8s service externalIPs feature (requires enabling enable-node-port) (default true)
  72. --enable-health-check-nodeport Enables a healthcheck nodePort server for NodePort services with 'healthCheckNodePort' being set (default true)
  73. --enable-health-checking Enable connectivity health checking (default true)
  74. --enable-host-firewall Enable host network policies (beta when using kube-proxy)
  75. --enable-host-legacy-routing Enable the legacy host forwarding model which does not bypass upper stack in host namespace
  76. --enable-host-port Enable k8s hostPort mapping feature (requires enabling enable-node-port) (default true)
  77. --enable-host-reachable-services Enable reachability of services for host applications
  78. --enable-hubble Enable hubble server
  79. --enable-hubble-recorder-api Enable the Hubble recorder API (default true)
  80. --enable-identity-mark Enable setting identity mark for local traffic (default true)
  81. --enable-ip-masq-agent Enable BPF ip-masq-agent
  82. --enable-ipsec Enable IPSec support
  83. --enable-ipv4 Enable IPv4 support (default true)
  84. --enable-ipv4-fragment-tracking Enable IPv4 fragments tracking for L4-based lookups (default true)
  85. --enable-ipv4-masquerade Masquerade IPv4 traffic from endpoints leaving the host (default true)
  86. --enable-ipv6 Enable IPv6 support (default true)
  87. --enable-ipv6-masquerade Masquerade IPv6 traffic from endpoints leaving the host (default true)
  88. --enable-ipv6-ndp Enable IPv6 NDP support
  89. --enable-k8s-api-discovery Enable discovery of Kubernetes API groups and resources with the discovery API
  90. --enable-k8s-endpoint-slice Enables k8s EndpointSlice feature in Cilium if the k8s cluster supports it (default true)
  91. --enable-k8s-event-handover Enable k8s event handover to kvstore for improved scalability
  92. --enable-l7-proxy Enable L7 proxy for L7 policy enforcement (default true)
  93. --enable-local-node-route Enable installation of the route which points the allocation prefix of the local node (default true)
  94. --enable-local-redirect-policy Enable Local Redirect Policy
  95. --enable-monitor Enable the monitor unix domain socket server (default true)
  96. --enable-node-port Enable NodePort type services by Cilium
  97. --enable-policy string Enable policy enforcement (default "default")
  98. --enable-recorder Enable BPF datapath pcap recorder
  99. --enable-remote-node-identity Enable use of remote node identity
  100. --enable-session-affinity Enable support for service session affinity
  101. --enable-svc-source-range-check Enable check of service source ranges (currently, only for LoadBalancer) (default true)
  102. --enable-tracing Enable tracing while determining policy (debugging)
  103. --enable-well-known-identities Enable well-known identities for known Kubernetes components (default true)
  104. --enable-wireguard Enable wireguard
  105. --enable-xt-socket-fallback Enable fallback for missing xt_socket module (default true)
  106. --encrypt-interface string Transparent encryption interface
  107. --encrypt-node Enables encrypting traffic from non-Cilium pods and host networking
  108. --endpoint-interface-name-prefix string Prefix of interface name shared by all endpoints (default "lxc+")
  109. --endpoint-queue-size int size of EventQueue per-endpoint (default 25)
  110. --endpoint-status strings Enable additional CiliumEndpoint status features (controllers,health,log,policy,state)
  111. --envoy-log string Path to a separate Envoy log file, if any
  112. --exclude-local-address strings Exclude CIDR from being recognized as local address
  113. --fixed-identity-mapping map Key-value for the fixed identity mapping which allows to use reserved label for fixed identities (default map[])
  114. --force-local-policy-eval-at-source Force policy evaluation of all local communication at the source endpoint (default true)
  115. --gops-port int Port for gops server to listen on (default 9890)
  116. -h, --help help for cilium-agent
  117. --host-reachable-services-protos strings Only enable reachability of services for host applications for specific protocols (default [tcp,udp])
  118. --http-idle-timeout uint Time after which a non-gRPC HTTP stream is considered failed unless traffic in the stream has been processed (in seconds); defaults to 0 (unlimited)
  119. --http-max-grpc-timeout uint Time after which a forwarded gRPC request is considered failed unless completed (in seconds). A "grpc-timeout" header may override this with a shorter value; defaults to 0 (unlimited)
  120. --http-normalize-path Use Envoy HTTP path normalization options, which currently includes RFC 3986 path normalization, Envoy merge slashes option, and unescaping and redirecting for paths that contain escaped slashes. These are necessary to keep path based access control functional, and should not interfere with normal operation. Set this to false only with caution. (default true)
  121. --http-request-timeout uint Time after which a forwarded HTTP request is considered failed unless completed (in seconds); Use 0 for unlimited (default 3600)
  122. --http-retry-count uint Number of retries performed after a forwarded request attempt fails (default 3)
  123. --http-retry-timeout uint Time after which a forwarded but uncompleted request is retried (connection failures are retried immediately); defaults to 0 (never)
  124. --hubble-disable-tls Allow Hubble server to run on the given listen address without TLS.
  125. --hubble-event-buffer-capacity int Capacity of Hubble events buffer. The provided value must be one less than an integer power of two and no larger than 65535 (ie: 1, 3, ..., 2047, 4095, ..., 65535) (default 4095)
  126. --hubble-event-queue-size int Buffer size of the channel to receive monitor events.
  127. --hubble-export-file-compress Compress rotated Hubble export files.
  128. --hubble-export-file-max-backups int Number of rotated Hubble export files to keep. (default 5)
  129. --hubble-export-file-max-size-mb int Size in MB at which to rotate Hubble export file. (default 10)
  130. --hubble-export-file-path string Filepath to write Hubble events to.
  131. --hubble-listen-address string An additional address for Hubble server to listen to, e.g. ":4244"
  132. --hubble-metrics strings List of Hubble metrics to enable.
  133. --hubble-metrics-server string Address to serve Hubble metrics on.
  134. --hubble-recorder-sink-queue-size int Queue size of each Hubble recorder sink (default 1024)
  135. --hubble-recorder-storage-path string Directory in which pcap files created via the Hubble Recorder API are stored (default "/var/run/cilium/pcaps")
  136. --hubble-socket-path string Set hubble's socket path to listen for connections (default "/var/run/cilium/hubble.sock")
  137. --hubble-tls-cert-file string Path to the public key file for the Hubble server. The file must contain PEM encoded data.
  138. --hubble-tls-client-ca-files strings Paths to one or more public key files of client CA certificates to use for TLS with mutual authentication (mTLS). The files must contain PEM encoded data. When provided, this option effectively enables mTLS.
  139. --hubble-tls-key-file string Path to the private key file for the Hubble server. The file must contain PEM encoded data.
  140. --identity-allocation-mode string Method to use for identity allocation (default "kvstore")
  141. --identity-change-grace-period duration Time to wait before using new identity on endpoint identity change (default 5s)
  142. --install-iptables-rules Install base iptables rules for cilium to mainly interact with kube-proxy (and masquerading) (default true)
  143. --install-no-conntrack-iptables-rules Install Iptables rules to skip netfilter connection tracking on all pod traffic. This option is only effective when Cilium is running in direct routing and full KPR mode. Moreover, this option cannot be enabled when Cilium is running in a managed Kubernetes environment or in a chained CNI setup.
  144. --ip-allocation-timeout duration Time after which an incomplete CIDR allocation is considered failed (default 2m0s)
  145. --ip-masq-agent-config-path string ip-masq-agent configuration file path (default "/etc/config/ip-masq-agent")
  146. --ipam string Backend to use for IPAM (default "cluster-pool")
  147. --ipsec-key-file string Path to IPSec key file
  148. --iptables-lock-timeout duration Time to pass to each iptables invocation to wait for xtables lock acquisition (default 5s)
  149. --iptables-random-fully Set iptables flag random-fully on masquerading rules
  150. --ipv4-node string IPv4 address of node (default "auto")
  151. --ipv4-pod-subnets strings List of IPv4 pod subnets to preconfigure for encryption
  152. --ipv4-range string Per-node IPv4 endpoint prefix, e.g. 10.16.0.0/16 (default "auto")
  153. --ipv4-service-loopback-address string IPv4 address for service loopback SNAT (default "169.254.42.1")
  154. --ipv4-service-range string Kubernetes IPv4 services CIDR if not inside cluster prefix (default "auto")
  155. --ipv6-cluster-alloc-cidr string IPv6 /64 CIDR used to allocate per node endpoint /96 CIDR (default "f00d::/64")
  156. --ipv6-mcast-device string Device that joins a Solicited-Node multicast group for IPv6
  157. --ipv6-node string IPv6 address of node (default "auto")
  158. --ipv6-pod-subnets strings List of IPv6 pod subnets to preconfigure for encryption
  159. --ipv6-range string Per-node IPv6 endpoint prefix, e.g. fd02:1:1::/96 (default "auto")
  160. --ipv6-service-range string Kubernetes IPv6 services CIDR if not inside cluster prefix (default "auto")
  161. --ipvlan-master-device string Device facing external network acting as ipvlan master (default "undefined")
  162. --join-cluster Join a Cilium cluster via kvstore registration
  163. --k8s-api-server string Kubernetes API server URL
  164. --k8s-heartbeat-timeout duration Configures the timeout for api-server heartbeat, set to 0 to disable (default 30s)
  165. --k8s-kubeconfig-path string Absolute path of the kubernetes kubeconfig file
  166. --k8s-namespace string Name of the Kubernetes namespace in which Cilium is deployed in
  167. --k8s-require-ipv4-pod-cidr Require IPv4 PodCIDR to be specified in node resource
  168. --k8s-require-ipv6-pod-cidr Require IPv6 PodCIDR to be specified in node resource
  169. --k8s-service-proxy-name string Value of K8s service-proxy-name label for which Cilium handles the services (empty = all services without service.kubernetes.io/service-proxy-name label)
  170. --k8s-watcher-endpoint-selector string K8s endpoint watcher will watch for these k8s endpoints (default "metadata.name!=kube-scheduler,metadata.name!=kube-controller-manager,metadata.name!=etcd-operator,metadata.name!=gcp-controller-manager")
  171. --keep-config When restoring state, keeps containers' configuration in place
  172. --kube-proxy-replacement string auto-enable available features for kube-proxy replacement ("probe"), or enable only selected features (will panic if any selected feature cannot be enabled) ("partial") or enable all features (will panic if any feature cannot be enabled) ("strict"), or completely disable it (ignores any selected feature) ("disabled") (default "partial")
  173. --kube-proxy-replacement-healthz-bind-address string The IP address with port for kube-proxy replacement health check server to serve on (set to '0.0.0.0:10256' for all IPv4 interfaces and '[::]:10256' for all IPv6 interfaces). Set empty to disable.
  174. --kvstore string Key-value store type
  175. --kvstore-connectivity-timeout duration Time after which an incomplete kvstore operation is considered failed (default 2m0s)
  176. --kvstore-opt map Key-value store options (default map[])
  177. --kvstore-periodic-sync duration Periodic KVstore synchronization interval (default 5m0s)
  178. --label-prefix-file string Valid label prefixes file path
  179. --labels strings List of label prefixes used to determine identity of an endpoint
  180. --lib-dir string Directory path to store runtime build environment (default "/var/lib/cilium")
  181. --local-router-ipv4 string Link-local IPv4 used for Cilium's router devices
  182. --local-router-ipv6 string Link-local IPv6 used for Cilium's router devices
  183. --log-driver strings Logging endpoints to use for example syslog
  184. --log-opt map Log driver options for cilium-agent, configmap example for syslog driver: {"syslog.level":"info","syslog.facility":"local5","syslog.tag":"cilium-agent"} (default map[])
  185. --log-system-load Enable periodic logging of system load
  186. --metrics strings Metrics that should be enabled or disabled from the default metric list. (+metric_foo to enable metric_foo , -metric_bar to disable metric_bar)
  187. --monitor-aggregation string Level of monitor aggregation for traces from the datapath (default "None")
  188. --monitor-aggregation-flags strings TCP flags that trigger monitor reports when monitor aggregation is enabled (default [syn,fin,rst])
  189. --monitor-aggregation-interval duration Monitor report interval when monitor aggregation is enabled (default 5s)
  190. --monitor-queue-size int Size of the event queue when reading monitor events
  191. --mtu int Overwrite auto-detected MTU of underlying network
  192. --nat46-range string IPv6 prefix to map IPv4 addresses to (default "0:0:0:0:0:FFFF::/96")
  193. --native-routing-cidr string Allows to explicitly specify the CIDR for native routing. This value corresponds to the configured cluster-cidr.
  194. --node-port-bind-protection Reject application bind(2) requests to service ports in the NodePort range (default true)
  195. --node-port-range strings Set the min/max NodePort port range (default [30000,32767])
  196. --policy-audit-mode Enable policy audit (non-drop) mode
  197. --policy-queue-size int size of queues for policy-related events (default 100)
  198. --pprof Enable serving the pprof debugging API
  199. --pprof-port int Port that the pprof listens on (default 6060)
  200. --preallocate-bpf-maps Enable BPF map pre-allocation (default true)
  201. --prefilter-device string Device facing external network for XDP prefiltering (default "undefined")
  202. --prefilter-mode string Prefilter mode via XDP ("native", "generic") (default "native")
  203. --prepend-iptables-chains Prepend custom iptables chains instead of appending (default true)
  204. --prometheus-serve-addr string IP:Port on which to serve prometheus metrics (pass ":Port" to bind on all interfaces, "" is off)
  205. --proxy-connect-timeout uint Time after which a TCP connect attempt is considered failed unless completed (in seconds) (default 1)
  206. --proxy-prometheus-port int Port to serve Envoy metrics on. Default 0 (disabled).
  207. --read-cni-conf string Read to the CNI configuration at specified path to extract per node configuration
  208. --restore Restores state, if possible, from previous daemon (default true)
  209. --sidecar-istio-proxy-image string Regular expression matching compatible Istio sidecar istio-proxy container image names (default "cilium/istio_proxy")
  210. --single-cluster-route Use a single cluster route instead of per node routes
  211. --socket-path string Sets daemon's socket path to listen for connections (default "/var/run/cilium/cilium.sock")
  212. --sockops-enable Enable sockops when kernel supported
  213. --state-dir string Directory path to store runtime state (default "/var/run/cilium")
  214. --tofqdns-dns-reject-response-code string DNS response code for rejecting DNS requests, available options are '[nameError refused]' (default "refused")
  215. --tofqdns-enable-dns-compression Allow the DNS proxy to compress responses to endpoints that are larger than 512 Bytes or the EDNS0 option, if present (default true)
  216. --tofqdns-endpoint-max-ip-per-hostname int Maximum number of IPs to maintain per FQDN name for each endpoint (default 50)
  217. --tofqdns-idle-connection-grace-period duration Time during which idle but previously active connections with expired DNS lookups are still considered alive (default 0s)
  218. --tofqdns-max-deferred-connection-deletes int Maximum number of IPs to retain for expired DNS lookups with still-active connections (default 10000)
  219. --tofqdns-min-ttl int The minimum time, in seconds, to use DNS data for toFQDNs policies. (default 3600 )
  220. --tofqdns-pre-cache string DNS cache data at this path is preloaded on agent startup
  221. --tofqdns-proxy-port int Global port on which the in-agent DNS proxy should listen. Default 0 is a OS-assigned port.
  222. --tofqdns-proxy-response-max-delay duration The maximum time the DNS proxy holds an allowed DNS response before sending it along. Responses are sent as soon as the datapath is updated with the new IP information. (default 100ms)
  223. --trace-payloadlen int Length of payload to capture when tracing (default 128)
  224. -t, --tunnel string Tunnel mode {vxlan, geneve, disabled} (default "vxlan" for the "veth" datapath mode)
  225. --version Print version information
  226. --write-cni-conf-when-ready string Write the CNI configuration as specified via --read-cni-conf to path when agent is ready