cilium-agent

Run the cilium agent

Synopsis

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. --allow-icmp-frag-needed Allow ICMP Fragmentation Needed type packets for purposes like TCP Path MTU. (default true)
  4. --allow-localhost string Policy when to allow local stack to reach local endpoints { auto | always | policy } (default "auto")
  5. --annotate-k8s-node Annotate Kubernetes node (default true)
  6. --api-rate-limit map API rate limiting configuration (example: --rate-limit endpoint-create=rate-limit:10/m,rate-burst:2) (default map[])
  7. --arping-refresh-period duration Period for remote node ARP entry refresh (set 0 to disable) (default 5m0s)
  8. --auto-create-cilium-node-resource Automatically create CiliumNode resource for own node on startup (default true)
  9. --auto-direct-node-routes Enable automatic L2 routing between nodes
  10. --blacklist-conflicting-routes Don't blacklist IP allocations conflicting with local non-cilium routes (default true)
  11. --bpf-compile-debug Enable debugging of the BPF compilation process
  12. --bpf-ct-global-any-max int Maximum number of entries in non-TCP CT table (default 262144)
  13. --bpf-ct-global-tcp-max int Maximum number of entries in TCP CT table (default 524288)
  14. --bpf-ct-timeout-regular-any duration Timeout for entries in non-TCP CT table (default 1m0s)
  15. --bpf-ct-timeout-regular-tcp duration Timeout for established entries in TCP CT table (default 6h0m0s)
  16. --bpf-ct-timeout-regular-tcp-fin duration Teardown timeout for entries in TCP CT table (default 10s)
  17. --bpf-ct-timeout-regular-tcp-syn duration Establishment timeout for entries in TCP CT table (default 1m0s)
  18. --bpf-ct-timeout-service-any duration Timeout for service entries in non-TCP CT table (default 1m0s)
  19. --bpf-ct-timeout-service-tcp duration Timeout for established service entries in TCP CT table (default 6h0m0s)
  20. --bpf-fragments-map-max int Maximum number of entries in fragments tracking map (default 8192)
  21. --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)
  22. --bpf-nat-global-max int Maximum number of entries for the global BPF NAT table (default 524288)
  23. --bpf-neigh-global-max int Maximum number of entries for the global BPF neighbor table (default 524288)
  24. --bpf-policy-map-max int Maximum number of entries in endpoint policy map (per endpoint) (default 16384)
  25. --bpf-root string Path to BPF filesystem
  26. --bpf-sock-rev-map-max int Maximum number of entries for the SockRevNAT BPF map (default 262144)
  27. --certificates-directory string Root directory to find certificates specified in L7 TLS policy enforcement (default "/var/run/cilium/certs")
  28. --cgroup-root string Path to Cgroup2 filesystem
  29. --cluster-id int Unique identifier of the cluster
  30. --cluster-name string Name of the cluster (default "default")
  31. --clustermesh-config string Path to the ClusterMesh configuration directory
  32. --config string Configuration file (default "$HOME/ciliumd.yaml")
  33. --config-dir string Configuration directory that contains a file for each option
  34. --conntrack-gc-interval duration Overwrite the connection-tracking garbage collection interval
  35. --datapath-mode string Datapath mode name (default "veth")
  36. -D, --debug Enable debugging mode
  37. --debug-verbose strings List of enabled verbose debug groups
  38. --devices strings List of devices facing cluster/external network (used for BPF NodePort, BPF masquerading and host firewall)
  39. --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)
  40. --disable-cnp-status-updates Do not send CNP NodeStatus updates to the Kubernetes api-server (recommended to run with "cnp-node-status-gc=false" in cilium-operator)
  41. --disable-conntrack Disable connection tracking
  42. --disable-endpoint-crd Disable use of CiliumEndpoint CRD
  43. --disable-iptables-feeder-rules strings Chains to ignore when installing feeder rules.
  44. --dns-max-ips-per-restored-rule int Maximum number of IPs to maintain for each restored DNS rule (default 1000)
  45. --egress-masquerade-interfaces string Limit egress masquerading to interface selector
  46. --egress-multi-home-ip-rule-compat Use a new scheme to store rules and routes under ENI and Azure IPAM modes, if false. Otherwise, it will use the old scheme.
  47. --enable-api-rate-limit Enables the use of the API rate limiting configuration
  48. --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)
  49. --enable-bpf-clock-probe Enable BPF clock source probing for more efficient tick retrieval
  50. --enable-bpf-masquerade Masquerade packets from endpoints leaving the host with BPF instead of iptables
  51. --enable-endpoint-health-checking Enable connectivity health checking between virtual endpoints (default true)
  52. --enable-endpoint-routes Use per endpoint routes instead of routing via cilium_host
  53. --enable-external-ips Enable k8s service externalIPs feature (requires enabling enable-node-port) (default true)
  54. --enable-health-check-nodeport Enables a healthcheck nodePort server for NodePort services with 'healthCheckNodePort' being set (default true)
  55. --enable-health-checking Enable connectivity health checking (default true)
  56. --enable-host-firewall Enable host network policies (beta)
  57. --enable-host-port Enable k8s hostPort mapping feature (requires enabling enable-node-port) (default true)
  58. --enable-host-reachable-services Enable reachability of services for host applications (beta)
  59. --enable-hubble Enable hubble server
  60. --enable-identity-mark Enable setting identity mark for local traffic (default true)
  61. --enable-ip-masq-agent Enable BPF ip-masq-agent
  62. --enable-ipsec Enable IPSec support
  63. --enable-ipv4 Enable IPv4 support (default true)
  64. --enable-ipv4-fragment-tracking Enable IPv4 fragments tracking for L4-based lookups (default true)
  65. --enable-ipv6 Enable IPv6 support (default true)
  66. --enable-k8s-api-discovery Enable discovery of Kubernetes API groups and resources with the discovery API
  67. --enable-k8s-endpoint-slice Enables k8s EndpointSlice feature in Cilium if the k8s cluster supports it (default true)
  68. --enable-k8s-event-handover Enable k8s event handover to kvstore for improved scalability
  69. --enable-l7-proxy Enable L7 proxy for L7 policy enforcement (default true)
  70. --enable-local-node-route Enable installation of the route which points the allocation prefix of the local node (default true)
  71. --enable-node-port Enable NodePort type services by Cilium (beta)
  72. --enable-policy string Enable policy enforcement (default "default")
  73. --enable-remote-node-identity Enable use of remote node identity
  74. --enable-session-affinity Enable support for service session affinity
  75. --enable-svc-source-range-check Enable check of service source ranges (currently, only for LoadBalancer) (default true)
  76. --enable-tracing Enable tracing while determining policy (debugging)
  77. --enable-well-known-identities Enable well-known identities for known Kubernetes components (default true)
  78. --enable-xt-socket-fallback Enable fallback for missing xt_socket module (default true)
  79. --encrypt-interface string Transparent encryption interface
  80. --encrypt-node Enables encrypting traffic from non-Cilium pods and host networking
  81. --endpoint-interface-name-prefix string Prefix of interface name shared by all endpoints (default "lxc+")
  82. --endpoint-queue-size int size of EventQueue per-endpoint (default 25)
  83. --endpoint-status strings Enable additional CiliumEndpoint status features (controllers,health,log,policy,state)
  84. --envoy-log string Path to a separate Envoy log file, if any
  85. --exclude-local-address strings Exclude CIDR from being recognized as local address
  86. --fixed-identity-mapping map Key-value for the fixed identity mapping which allows to use reserved label for fixed identities (default map[])
  87. --flannel-master-device string Installs a BPF program to allow for policy enforcement in the given network interface. Allows to run Cilium on top of other CNI plugins that provide networking, e.g. flannel, where for flannel, this value should be set with 'cni0'. [EXPERIMENTAL]
  88. --flannel-uninstall-on-exit When used along the flannel-master-device flag, it cleans up all BPF programs installed when Cilium agent is terminated.
  89. --force-local-policy-eval-at-source Force policy evaluation of all local communication at the source endpoint (default true)
  90. --gops-port int Port for gops server to listen on (default 9890)
  91. -h, --help help for cilium-agent
  92. --host-reachable-services-protos strings Only enable reachability of services for host applications for specific protocols (default [tcp,udp])
  93. --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)
  94. --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)
  95. --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)
  96. --http-request-timeout uint Time after which a forwarded HTTP request is considered failed unless completed (in seconds); Use 0 for unlimited (default 3600)
  97. --http-retry-count uint Number of retries performed after a forwarded request attempt fails (default 3)
  98. --http-retry-timeout uint Time after which a forwarded but uncompleted request is retried (connection failures are retried immediately); defaults to 0 (never)
  99. --hubble-event-queue-size int Buffer size of the channel to receive monitor events.
  100. --hubble-flow-buffer-size int Maximum number of flows in Hubble's buffer. The actual buffer size gets rounded up to the next power of 2, e.g. 4095 => 4096 (default 4095)
  101. --hubble-listen-address string An additional address for Hubble server to listen to, e.g. ":4244"
  102. --hubble-metrics strings List of Hubble metrics to enable.
  103. --hubble-metrics-server string Address to serve Hubble metrics on.
  104. --hubble-socket-path string Set hubble's socket path to listen for connections (default "/var/run/cilium/hubble.sock")
  105. --identity-allocation-mode string Method to use for identity allocation (default "kvstore")
  106. --identity-change-grace-period duration Time to wait before using new identity on endpoint identity change (default 5s)
  107. --install-iptables-rules Install base iptables rules for cilium to mainly interact with kube-proxy (and masquerading) (default true)
  108. --ip-allocation-timeout duration Time after which an incomplete CIDR allocation is considered failed (default 2m0s)
  109. --ip-masq-agent-config-path string ip-masq-agent configuration file path (default "/etc/config/ip-masq-agent")
  110. --ipam string Backend to use for IPAM (default "hostscope-legacy")
  111. --ipsec-key-file string Path to IPSec key file
  112. --iptables-lock-timeout duration Time to pass to each iptables invocation to wait for xtables lock acquisition (default 5s)
  113. --iptables-random-fully Set iptables flag random-fully on masquerading rules
  114. --ipv4-node string IPv4 address of node (default "auto")
  115. --ipv4-pod-subnets strings List of IPv4 pod subnets to preconfigure for encryption
  116. --ipv4-range string Per-node IPv4 endpoint prefix, e.g. 10.16.0.0/16 (default "auto")
  117. --ipv4-service-loopback-address string IPv4 address for service loopback SNAT (default "169.254.42.1")
  118. --ipv4-service-range string Kubernetes IPv4 services CIDR if not inside cluster prefix (default "auto")
  119. --ipv6-cluster-alloc-cidr string IPv6 /64 CIDR used to allocate per node endpoint /96 CIDR (default "f00d::/64")
  120. --ipv6-node string IPv6 address of node (default "auto")
  121. --ipv6-pod-subnets strings List of IPv6 pod subnets to preconfigure for encryption
  122. --ipv6-range string Per-node IPv6 endpoint prefix, e.g. fd02:1:1::/96 (default "auto")
  123. --ipv6-service-range string Kubernetes IPv6 services CIDR if not inside cluster prefix (default "auto")
  124. --ipvlan-master-device string Device facing external network acting as ipvlan master (default "undefined")
  125. --k8s-api-server string Kubernetes API server URL
  126. --k8s-heartbeat-timeout duration Configures the timeout for api-server heartbeat, set to 0 to disable (default 30s)
  127. --k8s-kubeconfig-path string Absolute path of the kubernetes kubeconfig file
  128. --k8s-namespace string Name of the Kubernetes namespace in which Cilium is deployed in
  129. --k8s-require-ipv4-pod-cidr Require IPv4 PodCIDR to be specified in node resource
  130. --k8s-require-ipv6-pod-cidr Require IPv6 PodCIDR to be specified in node resource
  131. --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)
  132. --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")
  133. --k8s-watcher-queue-size uint Queue size used to serialize each k8s event type (default 1024)
  134. --keep-config When restoring state, keeps containers' configuration in place
  135. --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")
  136. --kvstore string Key-value store type
  137. --kvstore-connectivity-timeout duration Time after which an incomplete kvstore operation is considered failed (default 2m0s)
  138. --kvstore-opt map Key-value store options (default map[])
  139. --kvstore-periodic-sync duration Periodic KVstore synchronization interval (default 5m0s)
  140. --label-prefix-file string Valid label prefixes file path
  141. --labels strings List of label prefixes used to determine identity of an endpoint
  142. --lib-dir string Directory path to store runtime build environment (default "/var/lib/cilium")
  143. --log-driver strings Logging endpoints to use for example syslog
  144. --log-opt map Log driver options for cilium (default map[])
  145. --log-system-load Enable periodic logging of system load
  146. --masquerade Masquerade packets from endpoints leaving the host (default true)
  147. --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)
  148. --monitor-aggregation string Level of monitor aggregation for traces from the datapath (default "None")
  149. --monitor-aggregation-flags strings TCP flags that trigger monitor reports when monitor aggregation is enabled (default [syn,fin,rst])
  150. --monitor-aggregation-interval duration Monitor report interval when monitor aggregation is enabled (default 5s)
  151. --monitor-queue-size int Size of the event queue when reading monitor events
  152. --mtu int Overwrite auto-detected MTU of underlying network
  153. --nat46-range string IPv6 prefix to map IPv4 addresses to (default "0:0:0:0:0:FFFF::/96")
  154. --native-routing-cidr string Allows to explicitly specify the CIDR for native routing. This value corresponds to the configured cluster-cidr.
  155. --node-port-acceleration string BPF NodePort acceleration via XDP ("native", "disabled") (default "disabled")
  156. --node-port-bind-protection Reject application bind(2) requests to service ports in the NodePort range (default true)
  157. --node-port-mode string BPF NodePort mode ("snat", "dsr", "hybrid") (default "snat")
  158. --node-port-range strings Set the min/max NodePort port range (default [30000,32767])
  159. --policy-audit-mode Enable policy audit (non-drop) mode
  160. --policy-queue-size int size of queues for policy-related events (default 100)
  161. --pprof Enable serving the pprof debugging API
  162. --preallocate-bpf-maps Enable BPF map pre-allocation (default true)
  163. --prefilter-device string Device facing external network for XDP prefiltering (default "undefined")
  164. --prefilter-mode string Prefilter mode via XDP ("native", "generic") (default "native")
  165. --prepend-iptables-chains Prepend custom iptables chains instead of appending (default true)
  166. --prometheus-serve-addr string IP:Port on which to serve prometheus metrics (pass ":Port" to bind on all interfaces, "" is off)
  167. --proxy-connect-timeout uint Time after which a TCP connect attempt is considered failed unless completed (in seconds) (default 1)
  168. --read-cni-conf string Read to the CNI configuration at specified path to extract per node configuration
  169. --restore Restores state, if possible, from previous daemon (default true)
  170. --sidecar-istio-proxy-image string Regular expression matching compatible Istio sidecar istio-proxy container image names (default "cilium/istio_proxy")
  171. --single-cluster-route Use a single cluster route instead of per node routes
  172. --skip-crd-creation Skip Kubernetes Custom Resource Definitions creations
  173. --socket-path string Sets daemon's socket path to listen for connections (default "/var/run/cilium/cilium.sock")
  174. --sockops-enable Enable sockops when kernel supported
  175. --state-dir string Directory path to store runtime state (default "/var/run/cilium")
  176. --tofqdns-dns-reject-response-code string DNS response code for rejecting DNS requests, available options are '[nameError refused]' (default "refused")
  177. --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)
  178. --tofqdns-endpoint-max-ip-per-hostname int Maximum number of IPs to maintain per FQDN name for each endpoint (default 50)
  179. --tofqdns-idle-connection-grace-period duration Time during which idle but previously active connections with expired DNS lookups are still considered alive (default 0s)
  180. --tofqdns-max-deferred-connection-deletes int Maximum number of IPs to retain for expired DNS lookups with still-active connections (default 10000)
  181. --tofqdns-min-ttl int The minimum time, in seconds, to use DNS data for toFQDNs policies. (default 3600 )
  182. --tofqdns-pre-cache string DNS cache data at this path is preloaded on agent startup
  183. --tofqdns-proxy-port int Global port on which the in-agent DNS proxy should listen. Default 0 is a OS-assigned port.
  184. --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)
  185. --trace-payloadlen int Length of payload to capture when tracing (default 128)
  186. -t, --tunnel string Tunnel mode {vxlan, geneve, disabled} (default "vxlan" for the "veth" datapath mode)
  187. --version Print version information
  188. --write-cni-conf-when-ready string Write the CNI configuration as specified via --read-cni-conf to path when agent is ready