Skip to content

Commit b17119a

Browse files
committed
feat(managed_kubernetes): Add customizing cilium configuration guide
1 parent 9a7cd85 commit b17119a

File tree

4 files changed

+173
-0
lines changed

4 files changed

+173
-0
lines changed

pages/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1155,6 +1155,7 @@
11551155
+ [Working with vRack example - Communicating between different private networks](public_cloud/containers_orchestration/managed_kubernetes/vrack-example-between-private-networks)
11561156
+ [Customizing Kube-proxy on an OVHcloud Managed Kubernetes cluster](public_cloud/containers_orchestration/managed_kubernetes/customizing-kubeproxy)
11571157
+ [Customizing CoreDNS on an OVHcloud Managed Kubernetes cluster](public_cloud/containers_orchestration/managed_kubernetes/customizing-coredns)
1158+
+ [Customizing Cilium on an OVHcloud Managed Kubernetes cluster](public_cloud/containers_orchestration/managed_kubernetes/customizing-cilium)
11581159
+ [Traffic Management](public-cloud-containers-orchestration-managed-kubernetes-k8s-traffic-management)
11591160
+ [Installing Nginx Ingress on OVHcloud Managed Kubernetes](public_cloud/containers_orchestration/managed_kubernetes/installing-nginx-ingress)
11601161
+ [Expose your applications using OVHcloud Public Cloud Load Balancer](public_cloud/containers_orchestration/managed_kubernetes/expose_your_applications_using_a_load_balancer)
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
title: Customizing Cilium on an OVHcloud Managed Kubernetes cluster
3+
excerpt: 'Find out how to customize Cilium on an OVHcloud Managed Kubernetes cluster'
4+
updated: 2025-12-09
5+
---
6+
7+
## Objective
8+
9+
The OVHcloud Managed Kubernetes service provides you with Kubernetes clusters without the hassle of installing or operating them.
10+
11+
The Standard plan of OVHcloud Managed Kubernetes clusters are using [Cilium](https://cilium.io/) as default cni.
12+
13+
The Cilium agent process (a.k.a. DaemonSet) supports setting configuration on a per-node basis.
14+
15+
This allows overriding cilium-config ConfigMap for a node or set of nodes by using `CiliumNodeConfig` objects.
16+
17+
> [!warning]
18+
> Without using `CiliumNodeConfig` object it will not be possible to update cilium-config ConfigMap.
19+
20+
## What is CiliumNodeConfig
21+
22+
As stated in [cilium documentation](https://docs.cilium.io/en/stable/configuration/per-node-config/#ciliumnodeconfig-objects).
23+
24+
A `CiliumNodeConfig` object allows for overriding ConfigMap / Agent arguments.
25+
26+
It consists of a set of fields and a label selector. The label selector defines to which nodes the configuration applies.
27+
28+
As is the standard with Kubernetes, an empty LabelSelector (e.g. {}) selects all nodes.
29+
30+
## Requirements
31+
32+
- An OVHcloud Managed Kubernetes cluster with standard plan.
33+
34+
## Customization example
35+
36+
### Enable topology aware routing for 3AZ region
37+
38+
> [!note]
39+
> To discover this feature you can read [Discover Kubernetes 1.33 features – Topology aware routing in multi-zones Kubernetes clusters](https://blog.ovhcloud.com/discover-kubernetes-1-33-features-topology-aware-routing-in-multi-zones-kubernetes-clusters/) By [Aurélie Vache](https://blog.ovhcloud.com/author/aurelie-vache/).
40+
41+
To enable it on cilium side, apply this configuration of `CiliumNodeConfig`.
42+
43+
```yaml
44+
apiVersion: cilium.io/v2
45+
kind: CiliumNodeConfig
46+
metadata:
47+
namespace: kube-system
48+
name: enable-service-topology
49+
spec:
50+
nodeSelector: {}
51+
defaults:
52+
enable-service-topology: "true"
53+
```
54+
55+
Then restart the cilium agent.
56+
57+
```bash
58+
kubectl -n kube-system rollout restart daemonset cilium
59+
```
60+
61+
Check if the configuration as been applied.
62+
63+
```bash
64+
kubectl -n kube-system logs $(kubectl -n kube-system get pod -l k8s-app=cilium -o name) | head -n 500 | grep enable-service-topology
65+
66+
time=2025-12-09T15:57:06.161145191Z level=info msg=" --config-sources='[{\"kind\":\"config-map\",\"namespace\":\"kube-system\",\"name\":\"cilium-config\"},{\"kind\":\"cilium-node-config\",\"namespace\":\"kube-system\",\"name\":\"enable-service-topology\"}]'"
67+
time=2025-12-09T15:57:06.165626171Z level=info msg=" --enable-service-topology='true'"
68+
```
69+
70+
## CiliumNodeConfig possible values
71+
72+
You can retrieve all keys / values in the cilium-configmap file of the [Cilium](https://github.com/cilium/cilium/blob/main/install/kubernetes/cilium/templates/cilium-configmap.yaml) github repository.
73+
74+
> [!warning]
75+
> Be aware that some keys could need some feature enablement in the cilium operator which could be disabled by default
76+
77+
## Go further
78+
79+
To have an overview of the OVHcloud Managed Kubernetes service, you can go to the [OVHcloud Managed Kubernetes page](/links/public-cloud/kubernetes).
80+
81+
To learn more about how to use your Kubernetes cluster the practical way, we invite you to read our [tutorials](/products/public-cloud-containers-orchestration-managed-kubernetes-k8s).
82+
83+
- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project.
84+
85+
- Join our [community of users](https://community.ovh.com/en/).
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
title: Customizing Cilium on an OVHcloud Managed Kubernetes cluster
3+
excerpt: 'Find out how to customize Cilium on an OVHcloud Managed Kubernetes cluster'
4+
updated: 2025-12-09
5+
---
6+
7+
## Objective
8+
9+
The OVHcloud Managed Kubernetes service provides you with Kubernetes clusters without the hassle of installing or operating them.
10+
11+
The Standard plan of OVHcloud Managed Kubernetes clusters are using [Cilium](https://cilium.io/) as default cni.
12+
13+
The Cilium agent process (a.k.a. DaemonSet) supports setting configuration on a per-node basis.
14+
15+
This allows overriding cilium-config ConfigMap for a node or set of nodes by using `CiliumNodeConfig` objects.
16+
17+
> [!warning]
18+
> Without using `CiliumNodeConfig` object it will not be possible to update cilium-config ConfigMap.
19+
20+
## What is CiliumNodeConfig
21+
22+
As stated in [cilium documentation](https://docs.cilium.io/en/stable/configuration/per-node-config/#ciliumnodeconfig-objects).
23+
24+
A `CiliumNodeConfig` object allows for overriding ConfigMap / Agent arguments.
25+
26+
It consists of a set of fields and a label selector. The label selector defines to which nodes the configuration applies.
27+
28+
As is the standard with Kubernetes, an empty LabelSelector (e.g. {}) selects all nodes.
29+
30+
## Requirements
31+
32+
- An OVHcloud Managed Kubernetes cluster with standard plan.
33+
34+
## Customization example
35+
36+
### Enable topology aware routing for 3AZ region
37+
38+
> [!note]
39+
> To discover this feature you can read [Discover Kubernetes 1.33 features – Topology aware routing in multi-zones Kubernetes clusters](https://blog.ovhcloud.com/discover-kubernetes-1-33-features-topology-aware-routing-in-multi-zones-kubernetes-clusters/) By [Aurélie Vache](https://blog.ovhcloud.com/author/aurelie-vache/).
40+
41+
To enable it on cilium side, apply this configuration of `CiliumNodeConfig`.
42+
43+
```yaml
44+
apiVersion: cilium.io/v2
45+
kind: CiliumNodeConfig
46+
metadata:
47+
namespace: kube-system
48+
name: enable-service-topology
49+
spec:
50+
nodeSelector: {}
51+
defaults:
52+
enable-service-topology: "true"
53+
```
54+
55+
Then restart the cilium agent.
56+
57+
```bash
58+
kubectl -n kube-system rollout restart daemonset cilium
59+
```
60+
61+
Check if the configuration as been applied.
62+
63+
```bash
64+
kubectl -n kube-system logs $(kubectl -n kube-system get pod -l k8s-app=cilium -o name) | head -n 500 | grep enable-service-topology
65+
66+
time=2025-12-09T15:57:06.161145191Z level=info msg=" --config-sources='[{\"kind\":\"config-map\",\"namespace\":\"kube-system\",\"name\":\"cilium-config\"},{\"kind\":\"cilium-node-config\",\"namespace\":\"kube-system\",\"name\":\"enable-service-topology\"}]'"
67+
time=2025-12-09T15:57:06.165626171Z level=info msg=" --enable-service-topology='true'"
68+
```
69+
70+
## CiliumNodeConfig possible values
71+
72+
You can retrieve all keys / values in the cilium-configmap file of the [Cilium](https://github.com/cilium/cilium/blob/main/install/kubernetes/cilium/templates/cilium-configmap.yaml) github repository.
73+
74+
> [!warning]
75+
> Be aware that some keys could need some feature enablement in the cilium operator which could be disabled by default
76+
77+
## Go further
78+
79+
To have an overview of the OVHcloud Managed Kubernetes service, you can go to the [OVHcloud Managed Kubernetes page](/links/public-cloud/kubernetes).
80+
81+
To learn more about how to use your Kubernetes cluster the practical way, we invite you to read our [tutorials](/products/public-cloud-containers-orchestration-managed-kubernetes-k8s).
82+
83+
- If you need training or technical assistance to implement our solutions, contact your sales representative or click on [this link](/links/professional-services) to get a quote and ask our Professional Services experts for assisting you on your specific use case of your project.
84+
85+
- Join our [community of users](https://community.ovh.com/en/).
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
id: 3d2d260e-c0b3-423e-897a-79d15cf5d84d
2+
full_slug: public-cloud-kubernetes-customizing-cilium

0 commit comments

Comments
 (0)