Skip to main content
This lesson explains what Kubernetes resources Cilium creates during installation and why each one exists. Later lessons will cover installation methods in depth (Cilium CLI vs. Helm) and guidance for choosing the right option for your environment. At a high level, installing Cilium will create:
  • A DaemonSet to run the Cilium agent on every node
  • A DaemonSet to run Envoy (per-node) for L7 functionality
  • A Deployment for the cilium-operator (cluster-scoped controller)
  • ConfigMaps for agent and Envoy configuration
  • ServiceAccounts for each component
  • RBAC ClusterRoles and ClusterRoleBindings
  • CustomResourceDefinitions (CRDs) used by Cilium (for policies and observability)
Below are representative Kubernetes manifests and concise explanations for the primary components so you can recognize what gets deployed and why. Table: primary Cilium resources and their purpose DaemonSet: Cilium agent
This DaemonSet ensures a Cilium agent runs on every node. The agent manages datapath programming, identity allocation, policy enforcement, node-local telemetry, and other responsibilities tied to the node’s networking stack. DaemonSet: Cilium Envoy (L7 proxy)
The Envoy DaemonSet provides per-node L7 proxying for HTTP/gRPC and richer telemetry. Envoy runs alongside the Cilium agent and handles L7 policies and observability when those features are enabled. Deployment: Cilium operator
The operator is a cluster-scoped controller that reconciles Cilium CRDs, performs garbage collection, coordinates node state, and manages cluster-wide workflows. Running multiple replicas improves availability. ConfigMap: cilium-config (agent settings)
This ConfigMap holds agent configuration values (identity mode, GC intervals, debugging, policy mode, datapath/tunneling options, etc.). You can customize many more settings depending on your cluster topology and feature needs. ConfigMap: cilium-envoy-config (Envoy bootstrap)
Envoy requires a bootstrap configuration (JSON/YAML). The key name must remain bootstrap-config.json for compatibility; the snippet above shows a minimal structure for Envoy’s admin interface and bootstrap extensions. ServiceAccounts
Each component uses a dedicated ServiceAccount so you can grant the minimal RBAC permissions required for its tasks. RBAC: ClusterRole and Binding (example for the agent)
ClusterRole and ClusterRoleBinding grant cluster-wide privileges to the component ServiceAccounts. Similar RBAC objects are created for the operator and other components.
Cilium requires elevated cluster privileges to watch and manipulate Kubernetes objects (nodes, pods, endpoints, CRDs). Review the RBAC rules before applying manifests in production clusters and follow your security policy for least-privilege access.
CustomResourceDefinitions (CRDs) Cilium installs several CRDs that enable high-level APIs for policy, visibility, and endpoint resources (for example: CiliumNetworkPolicy, CiliumClusterwideNetworkPolicy, CiliumEndpoint). These CRDs allow controllers and the operator to persist and reconcile Cilium-specific state. For more on Kubernetes CRDs, see: https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/ Putting it together — what to expect after installation
  • Node-local pods: cilium and cilium-envoy run across nodes via DaemonSets.
  • Cluster controller: cilium-operator runs as a Deployment with replicas.
  • Configuration: cilium-config and cilium-envoy-config ConfigMaps are created.
  • Security: ServiceAccounts and RBAC ClusterRoles/Bindings grant required permissions.
  • APIs: Cilium CRDs are registered for policy and resource management.
If you inspect a cluster after installing Cilium, look in the kube-system namespace for DaemonSets (cilium, cilium-envoy), the cilium-operator Deployment, ConfigMaps (cilium-config, cilium-envoy-config), component ServiceAccounts, and multiple Cilium-related CRDs.
Installation methods — CLI vs. Helm There are two primary ways to install Cilium on Kubernetes:
  1. Cilium CLI
  2. Helm
Note: The Cilium CLI internally uses Helm templates to render manifests. Whether you install via the CLI or Helm directly, Helm templates are involved in producing the manifests applied to the cluster.
References and further reading

Watch Video