Kubernetes

Cilium CNI Scaling Strategy

cilium cni scaling strategy วธ scale
Cilium CNI Scaling Strategy | SiamCafe Blog

โดย อ. บอมกิตติทัศน์เจริญพนาสิทธิ์ | อัปเดต 24 ก. พ. 2026 | อ่าน 16 นาที

eBPF คืออะไร — เทคโนโลยีเบื้องหลัง Cilium

eBPF (extended Berkeley Packet Filter) เป็นเทคโนโลยีที่เปลี่ยนวิธีคิดเรื่อง Linux Kernel Programming ให้รัน Custom Program ใน Kernel Space ได้โดยไม่ต้อง Recompile Kernel หรือโหลด Kernel Module Program ถูกตรวจสอบโดย eBPF Verifier ก่อนรันจึงปลอดภัยและ Stable

eBPF ถูกใช้ใน 3 ด้านหลัก Networking จัดการ Packet ที่ Kernel Level เร็วกว่า iptables (Cilium, Cloudflare), Security ตรวจจับ System Call ที่ผิดปกติ (Falco, Tetragon) และ Observability ดึง Metrics/Traces จาก Kernel (Pixie, Hubble) โดยไม่กระทบ Performance ของ Application

Cilium คืออะไร — eBPF-based CNI

Cilium เป็น CNI (Container Network Interface) Plugin สำหรับ Kubernetes ที่ใช้ eBPF เป็น Data Plane แทน iptables แบบเดิมเป็น CNCF Graduated Project (2024) ถูกใช้โดย Google GKE, AWS EKS, Azure AKS เป็น Default CNI และบริษัทใหญ่อีกมาก

Cilium ทำ 4 อย่างหลัก Networking Pod-to-Pod, Service Load Balancing, Multi-cluster, Security Network Policy ระดับ L3/L4/L7 (DNS, HTTP, gRPC), Observability Hubble แสดง Flow Log, Service Map, DNS Query แบบ Real-time และ Service Mesh mTLS, Traffic Management แบบ Sidecar-free ไม่ต้อง Inject Sidecar Container

เปรียบเทียบ Cilium vs Calico vs Flannel vs WeaveNet

คุณสมบัติCiliumCalicoFlannelWeaveNet
Data PlaneeBPFiptables/eBPFVXLANVXLAN
Performanceดีเยี่ยมดีปานกลางปานกลาง
Network PolicyL3/L4/L7L3/L4ไม่มีL3/L4
Service Meshในตัว (Sidecar-free)ไม่มีไม่มีไม่มี
ObservabilityHubble (ดีมาก)Basicไม่มีBasic
Multi-clusterCluster MeshFederationไม่มีไม่มี
Complexityสูงปานกลางต่ำต่ำ

ติดตั้ง Cilium บน Kubernetes

# ติดตั้ง Cilium CLI
CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt)
curl -L --fail --remote-name-all \
 https://github.com/cilium/cilium-cli/releases/download//cilium-linux-amd64.tar.gz
sudo tar xzvfC cilium-linux-amd64.tar.gz /usr/local/bin

# ติดตั้ง Cilium บน Cluster
cilium install --version 1.16

# ตรวจสอบ Status
cilium status --wait

# เปิด Hubble (Observability)
cilium hubble enable --ui

# ทดสอบ Connectivity
cilium connectivity test

Cilium Network Policy — L3/L4/L7

# L3/L4 Policy — อนุญาตเฉพาะ Port 80 จาก Frontend
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
 name: allow-frontend-to-api
spec:
 endpointSelector:
 matchLabels:
 app: api
 ingress:
 - fromEndpoints:
 - matchLabels:
 app: frontend
 toPorts:
 - ports:
 - port: "80"
 protocol: TCP

---
# L7 Policy — อนุญาตเฉพาะ GET /api/products
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
 name: allow-get-products
spec:
 endpointSelector:
 matchLabels:
 app: api
 ingress:
 - fromEndpoints:
 - matchLabels:
 app: frontend
 toPorts:
 - ports:
 - port: "80"
 rules:
 http:
 - method: GET
 path: "/api/products"

---
# DNS Policy — อนุญาตเฉพาะ DNS ที่กำหนด
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
 name: allow-external-api
spec:
 endpointSelector:
 matchLabels:
 app: backend
 egress:
 - toFQDNs:
 - matchName: "api.stripe.com"
 - matchName: "api.sendgrid.com"
 toPorts:
 - ports:
 - port: "443"

Cilium Service Mesh — Sidecar-free

Cilium Service Mesh ใช้ eBPF ทำ mTLS, Traffic Management, Observability โดยไม่ต้อง Inject Sidecar Container เหมือน Istio ลด Resource Overhead (ไม่มี Sidecar = ไม่มี CPU/Memory เพิ่ม), ลด Latency (ไม่ต้องผ่าน Proxy), ลด Complexity (ไม่ต้องจัดการ Sidecar Injection)

# เปิด Service Mesh
cilium install --set kubeProxyReplacement=true \
 --set ingressController.enabled=true \
 --set envoy.enabled=true

# Ingress Controller (แทน Nginx Ingress)
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
 name: my-api
 annotations:
 ingress.cilium.io/loadbalancer-mode: shared
spec:
 ingressClassName: cilium
 rules:
 - host: api.example.com
 http:
 paths:
 - path: /
 pathType: Prefix
 backend:
 service:
 name: api-service
 port:
 number: 80

Hubble — Network Observability

# ดู Flow Log แบบ Real-time
hubble observe --namespace production

# Filter เฉพาะ Dropped Traffic
hubble observe --verdict DROPPED

# Filter เฉพาะ DNS
hubble observe --protocol DNS

# Filter เฉพาะ HTTP 5xx
hubble observe --http-status-code 500-599

# เปิด Hubble UI
cilium hubble enable --ui
kubectl port-forward -n kube-system svc/hubble-ui 12000:80
# เปิด http://localhost:12000 ดู Service Map

Hubble UI แสดง Service Dependency Map แบบ Real-time เห็นว่า Service ไหนเรียก Service ไหนผ่าน Protocol อะไร Latency เท่าไรมี Error Rate กี่เปอร์เซ็นต์ช่วย Debug Network Issue ได้อย่างรวดเร็ว

Load Balancing ด้วย XDP

Cilium ใช้ XDP (eXpress Data Path) สำหรับ Load Balancing ที่ NIC Driver Level เร็วกว่า kube-proxy (iptables) 10 เท่าเพราะจัดการ Packet ก่อนเข้า Kernel Network Stack

# เปิด kube-proxy Replacement
cilium install \
 --set kubeProxyReplacement=true \
 --set loadBalancer.acceleration=native \
 --set loadBalancer.mode=dsr \
 --set bpf.masquerade=true

# ตรวจสอบ
cilium status | grep KubeProxyReplacement
# KubeProxyReplacement: True [eth0 (Direct Routing)]

# DSR (Direct Server Return) — Response ไม่ผ่าน LB กลับ
# ลด Latency และ Load บน LB Node

Bandwidth Management และ QoS

# จำกัด Bandwidth ต่อ Pod
apiVersion: v1
kind: Pod
metadata:
 name: bandwidth-limited
 annotations:
 kubernetes.io/egress-bandwidth: "10M"
 kubernetes.io/ingress-bandwidth: "20M"
spec:
 containers:
 - name: app
 image: nginx

Cluster Mesh — Multi-cluster Networking

Cilium Cluster Mesh เชื่อม Kubernetes Cluster หลายตัวให้ Pod สื่อสารข้าม Cluster ได้โดยตรงเหมือนอยู่ Cluster เดียวกันเหมาะกับ Multi-region, Disaster Recovery, Hybrid Cloud

# เปิด Cluster Mesh บน Cluster 1
cilium clustermesh enable --context cluster1

# เปิด Cluster Mesh บน Cluster 2
cilium clustermesh enable --context cluster2

# เชื่อม 2 Cluster
cilium clustermesh connect --context cluster1 --destination-context cluster2

# ตรวจสอบ
cilium clustermesh status --context cluster1

# Global Service — Service ที่ Load Balance ข้าม Cluster
apiVersion: v1
kind: Service
metadata:
 name: api-service
 annotations:
 service.cilium.io/global: "true"
 service.cilium.io/shared: "true"

Scaling Strategy — ออกแบบให้รองรับ 10,000+ Pods

# Production Helm Values สำหรับ Large Cluster
cilium install \
 --set kubeProxyReplacement=true \
 --set routingMode=native \
 --set ipv4NativeRoutingCIDR=10.0.0.0/8 \
 --set bpf.masquerade=true \
 --set bpf.hostLegacyRouting=false \
 --set loadBalancer.acceleration=native \
 --set loadBalancer.mode=dsr \
 --set hubble.enabled=true \
 --set hubble.metrics.enableOpenMetrics=true \
 --set operator.replicas=2 \
 --set ipam.mode=kubernetes

Performance Tuning

Troubleshooting

# ตรวจ Cilium Agent Status
cilium status
cilium-dbg status --verbose

# ดู Endpoint (Pod) Status
cilium-dbg endpoint list

# ตรวจ BPF Program
cilium-dbg bpf lb list
cilium-dbg bpf ct list global

# ดู Policy ที่ Apply อยู่
cilium-dbg policy get

# Monitor Dropped Packets
cilium-dbg monitor --type drop

# Connectivity Test
cilium connectivity test

Best Practices และสรุป

Cilium เป็น CNI ที่ทรงพลังที่สุดสำหรับ Kubernetes ในปี 2026 ด้วย eBPF ที่ทำ Networking, Security และ Observability ที่ Kernel Level ให้ Performance ดีกว่า CNI แบบเดิมหลายเท่าเมื่อรวมกับ Scaling Strategy ที่เหมาะสมจะรองรับ Cluster ขนาดใหญ่ได้อย่างมั่นใจติดตามบทความใหม่ๆได้ที่ SiamCafe.net

อ. บอมกิตติทัศน์เจริญพนาสิทธิ์
IT Infrastructure Expert | Thaiware Award | ประสบการณ์กว่า 25 ปี — ผู้ก่อตั้ง SiamCafe.net Since 2000-2026

Q: Cilium คืออะไร

eBPF-based CNI สำหรับ Kubernetes ทำ Networking, Security, Observability ที่ Kernel Level เร็วกว่า iptables-based CNI หลายเท่าเป็น CNCF Graduated

Q: eBPF คืออะไร

เทคโนโลยีรัน Program ใน Linux Kernel โดยไม่ต้อง Recompile ปลอดภัยใช้สำหรับ Networking, Security, Monitoring

Q: Cilium ต่างจาก Calico อย่างไร

Cilium ใช้ eBPF เร็วกว่ามี Service Mesh + Hubble ในตัว | Calico ใช้ iptables เรียบง่ายกว่าเลือกตาม Requirement

Q: Hubble คืออะไร

Network Observability ที่มาพร้อม Cilium แสดง Flow Log, Service Map, DNS, HTTP แบบ Real-time ไม่ต้อง Sidecar

บทความแนะนำ:

อ่านเพิ่มเติม: บทความทั้งหมด | หน้าแรก Blog

เจาะลึก Cilium CNI Scaling Strategy

การทำความเข้าใจ Cilium CNI Scaling Strategy อย่างลึกซึ้งนั้นมีความสำคัญอย่างมากในยุคปัจจุบันเทคโนโลยีนี้ได้รับความนิยมเพิ่มขึ้นอย่างต่อเนื่องทั้งในระดับองค์กรและระดับบุคคลการเรียนรู้และทำความเข้าใจหลักการทำงานพื้นฐานจะช่วยให้คุณสามารถนำไปประยุกต์ใช้งานได้อย่างมีประสิทธิภาพมากยิ่งขึ้น

ในบริบทของประเทศไทย Cilium CNI Scaling Strategy มีบทบาทสำคัญในการพัฒนาโครงสร้างพื้นฐานด้านเทคโนโลยีสารสนเทศองค์กรต่างๆทั้งภาครัฐและเอกชนต่างให้ความสนใจในการนำเทคโนโลยีนี้มาใช้เพื่อเพิ่มประสิทธิภาพการทำงานและลดต้นทุนในระยะยาวความเข้าใจที่ถูกต้องจะช่วยให้การตัดสินใจเลือกใช้เครื่องมือและแนวทางปฏิบัติเป็นไปอย่างเหมาะสม

สรุปประเด็นสำคัญ

บทความนี้ได้รวบรวมข้อมูลสำคัญเกี่ยวกับ Cilium CNI Scaling Strategy | SiamCafe Blog ไว้อย่างครบถ้วนครอบคลุมทั้งแนวคิดพื้นฐานการนำไปใช้งานจริงและแนวทางปฏิบัติที่ดีที่สุดสำหรับผู้ที่สนใจในหัวข้อนี้การทำความเข้าใจเรื่องนี้จะช่วยให้คุณสามารถประยุกต์ใช้ความรู้ได้อย่างมีประสิทธิภาพมากยิ่งขึ้นไม่ว่าจะเป็นในบริบทของการทำงานการศึกษาหรือการพัฒนาตนเอง

ทำไมหัวข้อนี้จึงสำคัญ?

ในยุคปัจจุบันที่เทคโนโลยีมีการเปลี่ยนแปลงอย่างรวดเร็วการติดตามและทำความเข้าใจเกี่ยวกับ Cilium CNI Scaling Strategy | SiamCafe Blog เป็นสิ่งจำเป็นอย่างยิ่งผู้เชี่ยวชาญในสาขานี้แนะนำว่าควรศึกษาทั้งทฤษฎีและปฏิบัติควบคู่กันไปเพื่อให้สามารถนำไปประยุกต์ใช้ได้จริงในสถานการณ์ต่างๆ

แหล่งข้อมูลเพิ่มเติม

สำหรับผู้ที่ต้องการศึกษาเพิ่มเติมเกี่ยวกับ Cilium CNI Scaling Strategy | SiamCafe Blog สามารถค้นหาข้อมูลจากแหล่งความรู้ที่น่าเชื่อถือเช่นเอกสารทางวิชาการบทความจากผู้เชี่ยวชาญและชุมชนออนไลน์ที่เกี่ยวข้องการเรียนรู้อย่างต่อเนื่องจะช่วยให้คุณก้าวทันการเปลี่ยนแปลงและสามารถนำความรู้ไปใช้ประโยชน์ได้สูงสุด