Network Agent Configuration
Ağ Ajanı Yapılandırması
Configure the eBPF network monitoring agent that captures real-time TCP/UDP traffic flows across your Kubernetes cluster. This agent uses the poyraz-network-observability ConfigMap for all settings.
Kubernetes kümenizde gerçek zamanlı TCP/UDP trafik akışlarını yakalayan eBPF ağ izleme ajanını yapılandırın. Bu ajan tüm ayarlar için poyraz-network-observability ConfigMap'ini kullanır.
⚠️ Kernel Requirements
⚠️ Çekirdek Gereksinimleri
Kernel 5.8+ has been tested and is recommended for optimal performance. Earlier kernel versions may work but are not officially supported.
Kernel 5.8+ test edilmiş ve optimal performans için önerilir. Önceki çekirdek sürümleri çalışabilir ancak resmi olarak desteklenmez.
ConfigMap Overview
ConfigMap Genel Bakış
The network agent reads its configuration from the http-tracer-config ConfigMap in the poyraz-network-observability namespace. This YAML-based configuration controls interface monitoring, traffic filtering, and data export settings.
Ağ ajanı yapılandırmasını poyraz-network-observability namespace'indeki http-tracer-config ConfigMap'inden okur. Bu YAML tabanlı yapılandırma, arayüz izleme, trafik filtreleme ve veri dışa aktarma ayarlarını kontrol eder.
Interface Configuration
Arayüz Yapılandırması
| Setting | Ayar | Description | Açıklama | Mechanism | Mekanizma |
|---|---|---|---|---|---|
interfaces |
List of network interfaces to attach eBPF probes. Supports wildcards (e.g., lxc*).eBPF problarının bağlanacağı ağ arayüzlerinin listesi. Joker karakterleri destekler (örn. lxc*). |
eBPF XDP/TC AttachmenteBPF XDP/TC Bağlantısı |
interfaces:
- name: "lxc*" # Container interfaces
- name: "cil*" # Cilium interfaces
- name: "ens192" # Physical interface
- name: "cni0" # CNI bridge
Traffic Filtering
Trafik Filtreleme
| Filter | Filtre | Description | Açıklama | Default | Varsayılan |
|---|---|---|---|---|---|
exclude_port |
Suppress monitoring for specific TCP/UDP ports.Belirli TCP/UDP portları için izlemeyi durdur. | [] |
|||
exclude_ips |
List of CIDR blocks or single IPs to ignore.Yoksayılacak CIDR bloklarının veya tekil IP'lerin listesi. | [] |
|||
exclude_tcp_flags |
Skip monitoring for specific TCP control flags.Belirli TCP kontrol bayrakları için izlemeyi atla. | [] |
|||
exclude_namespaces |
Ignore traffic from pods in these Kubernetes namespaces.Bu Kubernetes namespace'lerindeki pod'lardan gelen trafiği yoksay. | ["kube-system"] |
|||
exclude_pod_prefixes |
Filter out pods whose names start with these prefixes.İsimleri bu ön eklerle başlayan pod'ları filtrele. | [] |
|||
only_kubernetes_pod_ips |
If true, captures traffic only if the source or destination is a known Pod IP.Doğruysa, yalnızca kaynak veya hedef bilinen bir Pod IP'si ise trafiği yakalar. | false |
|||
only_kubernetes_service_ips |
If true, captures traffic only involving Kubernetes Service (ClusterIP) addresses.Doğruysa, yalnızca Kubernetes Servis (ClusterIP) adreslerini içeren trafiği yakalar. | false |
IP Exclusion Best Practices
IP Hariç Tutma En İyi Uygulamalar
🌐 Flannel CNI
🌐 Flannel CNI
If using Flannel, exclude IPs ending with .0 and .1 from your CIDR block to avoid infrastructure noise:
Flannel kullanıyorsanız, altyapı gürültüsünü önlemek için CIDR bloğunuzda .0 ve .1 ile biten IP'leri hariç tutun:
exclude_ips:
- "10.247.0.1/32"
- "10.247.1.1/32"
- "10.247.2.1/32"
- "10.247.3.1/32"
- "10.247.0.0/32"
- "10.247.1.0/32"
exclude_ips:
- "10.247.0.1/32"
- "10.247.1.1/32"
- "10.247.2.1/32"
- "10.247.3.1/32"
- "10.247.0.0/32"
- "10.247.1.0/32"
🔷 Cilium CNI
🔷 Cilium CNI
For Cilium, exclude cilium_host interface IPs to reduce system traffic monitoring:
Cilium için, sistem trafiği izlemeyi azaltmak için cilium_host arayüz IP'lerini hariç tutun:
# Find cilium_host IPs with:
# ip addr show cilium_host
exclude_ips:
- "10.245.1.87/32" # cilium_host IP
# cilium_host IP'lerini şununla bulun:
# ip addr show cilium_host
exclude_ips:
- "10.245.1.87/32" # cilium_host IP
Example cilium_host interface:
Örnek cilium_host arayüzü:
cilium_host: flags=4291<UP,BROADCAST,RUNNING,NOARP,MULTICAST> mtu 1450
inet 10.245.1.87 netmask 255.255.255.255
Kubernetes Integration Settings
Kubernetes Entegrasyon Ayarları
| Setting | Ayar | Description | Açıklama | Default | Varsayılan |
|---|---|---|---|---|---|
kubernetes.enabled |
Toggle K8s metadata enrichment (Pod/Service names).K8s metadata zenginleştirmesini (Pod/Servis isimleri) aç/kapat. | true |
|||
kubernetes.config_path |
Path to kubeconfig file (null for in-cluster).Kubeconfig dosyası yolu (küme içi için null). | null |
|||
kubernetes.sync_interval |
Refresh rate for Pod/Service IP mapping (seconds).Pod/Servis IP eşlemesi için yenileme hızı (saniye). | 60 |
Processing Settings
İşleme Ayarları
| Setting | Ayar | Description | Açıklama | Default | Varsayılan |
|---|---|---|---|---|---|
processing.print_to_console |
Enable/disable flow logging to container stdout.Konteyner stdout'una akış günlüğünü etkinleştir/devre dışı bırak. | false |
Data Export Configuration
Veri Dışa Aktarma Yapılandırması
| Setting | Ayar | Description | Açıklama | Default | Varsayılan |
|---|---|---|---|---|---|
exporter.enabled |
Enable data export to backendBackend'e veri dışa aktarımını etkinleştir | true |
|||
exporter.http_endpoint |
Backend API endpoint (host:port)Backend API uç noktası (host:port) | backend-ip:8686 |
|||
exporter.buffer_size |
Flow buffer size before sendingGöndermeden önce akış tampon boyutu | 100 |
|||
exporter.timeout |
HTTP request timeout (seconds)HTTP istek zaman aşımı (saniye) | 30 |
Complete Configuration Example
Tam Yapılandırma Örneği
config.yaml: |
interfaces:
- name: "lxc*"
- name: "cil*"
- name: "ens192"
- name: "cni0"
filters:
exclude_port:
- "1025"
exclude_ips:
- "10.245.0.114/32"
- "10.245.2.107/32"
- "10.245.3.35/32"
- "10.245.1.87/32"
- "10.247.0.1/32"
- "10.247.1.1/32"
- "10.247.2.1/32"
- "10.247.3.1/32"
- "10.247.4.1/32"
- "10.247.5.1/32"
- "10.247.6.1/32"
- "10.247.7.1/32"
- "10.247.8.1/32"
- "10.247.9.1/32"
- "10.247.10.1/32"
- "10.247.11.1/32"
- "10.247.12.1/32"
- "10.247.13.1/32"
- "10.247.14.1/32"
- "10.247.15.1/32"
- "10.247.16.1/32"
- "10.247.17.1/32"
- "10.247.18.1/32"
- "10.247.0.0/32"
- "10.247.1.0/32"
- "10.247.2.0/32"
- "10.247.3.0/32"
- "10.247.4.0/32"
- "10.247.5.0/32"
- "10.247.6.0/32"
- "10.247.7.0/32"
- "10.247.8.0/32"
- "10.247.9.0/32"
- "10.247.10.0/32"
- "10.247.11.0/32"
- "10.247.12.0/32"
- "10.247.13.0/32"
- "10.247.14.0/32"
- "10.247.15.0/32"
- "10.247.16.0/32"
- "10.247.17.0/32"
- "10.247.18.0/32"
exclude_tcp_flags: []
exclude_namespaces: ["kube-system"]
exclude_pod_prefixes: ["rook-", "jaeger-"]
only_kubernetes_pod_ips: false
only_kubernetes_service_ips: false
kubernetes:
enabled: true
config_path: null
sync_interval: 60
processing:
print_to_console: false
exporter:
enabled: true
http_endpoint: "10.200.63.202:8686"
buffer_size: 100
timeout: 30
🚀 Applying Configuration
🚀 Yapılandırmayı Uygulama
After modifying the configuration, restart the agent pods to apply changes:
Yapılandırmayı değiştirdikten sonra, değişiklikleri uygulamak için ajan pod'larını yeniden başlatın:
kubectl rollout restart daemonset/http-tracer -n poyraz-network-observability