Kubernetes Network
Observability with
Cilium and Hubble
Speaker: Tomasz Tarczyński
• Customer Reliability Engineer
• Helping Isovalent Enterprise customers
meet their reliability requirements with
Tomasz Tarczyński
● Kubernetes Networking 101
● CNI
● Cilium and Hubble
● Observability
• IPAM: Dynamic CNI
• Routing: Dynamic CNI
Kubernetes Networking
• IPAM: Dynamic CNI
• Routing: Dynamic CNI
• East-West connectivity:
○ Service type: ClusterIP (kube-proxy)
Kubernetes Networking
• IPAM: Dynamic CNI
• Routing: Dynamic CNI
• East-West connectivity:
○ Service type: ClusterIP (kube-proxy)
• Service discovery: Dynamic CoreDNS
Kubernetes Networking
• IPAM: Dynamic CNI
• Routing: Dynamic CNI
• East-West connectivity:
○ Service type: ClusterIP (kube-proxy)
• Service discovery: Dynamic CoreDNS
• North-South Connectivity:
○ Service type: LoadBalancer (kube-proxy)
Kubernetes Networking
• IPAM: Dynamic CNI
• Routing: Dynamic CNI
• East-West connectivity:
○ Service type: ClusterIP (kube-proxy)
• Service discovery: Dynamic CoreDNS
• North-South Connectivity:
○ Service type: LoadBalancer (kube-proxy)
• Security:
○ NetworkPolicy CNI
○ Transparent Encryption CNI / Service Mesh)
Kubernetes Networking
● Kubernetes Networking 101
● CNI
● Cilium and Hubble
● Observability
● Container Network Interface CNI
CNI
● Container Network Interface CNI
● Dynamic network configuration
CNI
● Container Network Interface CNI
● Dynamic network configuration
● Interface for:
○ Configuring the network
○ IP Address Management IPAM
○ Connectivity across hosts
CNI
● Container Network Interface CNI
● Dynamic network configuration
● Interface for:
○ Configuring the network
○ IP Address Management IPAM
○ Connectivity across hosts
CNI
● Container Network Interface CNI
● Dynamic network configuration
● Interface for:
○ Configuring the network
○ IP Address Management IPAM
○ Connectivity across hosts
● Routing:
○ Encapsulation
○ Native-Routing
CNI
● Container Network Interface CNI
● Dynamic network configuration
● Interface for:
○ Configuring the network
○ IP Address Management IPAM
○ Connectivity across hosts
● Routing:
○ Encapsulation
○ Native-Routing
● CNI plugins
CNI
● Kubernetes Networking 101
● CNI
● Cilium and Hubble
● Observability
CNI
CNI
Declarative Intent
cilium-agent watches K8s API objects:
● K8s Nodes
● K8s Pods
● Network Policies
● Services + Endpoints
Cilium Architecture
Cilium Architecture
● Kubernetes Networking 101
● CNI
● Cilium and Hubble
● Observability
Demo
● Golden Signals in Grafana
● Zero Trust Visibility
flow:
sourceContext=workload-name|reserved-identity;
destinationContext=workload-name|reserved-identity
● flow
○ flows_processed_total – Total number of flows processed
Metrics
https://docs.cilium.io/en/stable/observability/metrics/#hubble
httpV2:
labelsContext=
source_ip,source_namespace,source_workload,
destination_ip,destination_namespace,destination_workload,
traffic_direction;
sourceContext=workload-name|reserved-identity;
destinationContext=workload-name|reserved-identity
● httpV2
○ http_requests_total – Count of HTTP requests
○ http_request_duration_seconds – Histogram of HTTP request duration in seconds
Metrics
https://docs.cilium.io/en/stable/observability/metrics/#hubble
● Kubernetes Networking 101
● CNI
● Cilium and Hubble
● Observability
Want to Learn More?
https://isovalent.com/resource-library/labs/
Thank you!
Tomasz Tarczyński
● Cilium Labs:
○ https://isovalent.com/resource-library/labs/
● Hubble Metrics Docs:
○ https://docs.cilium.io/en/stable/observability/metrics/#hubble
● Grafana Dashboards:
○ https://grafana.com/grafana/dashboards/18015-cilium-policy-verdicts/
○ https://github.com/cilium/cilium/blob/main/install/kubernetes/cilium/files/hubbl
e/dashboards/hubble-l7-http-metrics-by-workload.json
Links

Kubernetes Network Observability with Cilium and Hubble