Introduction to Cilium CNI

Published on March 24, 2026
Introduction to Cilium CNI

Cilium CNI คือระบบเครือข่ายสำหรับ Kubernetes ที่ล้ำสมัยมาก โดยใช้เทคโนโลยีระดับเคอร์เนลของ Linux ที่เรียกว่า eBPF แทนการใช้ iptables แบบดั้งเดิม ที่มีการใช้งานใน Flannel และ Calico ในบทความนี้เราจะอธิบายทั้งแนวคิด, โครงสร้าง, การทำงาน, และข้อดี/ข้อเสียของ Cilium CNI รวมถึงข้อสรุปว่า Cilium นั้นเหมาะกับใครบ้าง

1. CNI คืออะไร

CNI ย่อมาจาก Container Network Interface คือมาตรฐานที่ Kubernetes ใช้จัดการ network ของ pod เช่น การ assign IP ให้ pod การทำ routing ระหว่าง pods และการจัดการ policy ในการควบคุม traffic CNI ที่ที่เป็นที่นิยมในปัจจุบันจะมีอยู่ 3 ตัวคือ Flannel (ง่าย), Calico (มี network policy) และ Cilium (advanced + eBPF)

2. Cilium คืออะไร

Cilium เป็น CNI ที่ ใช้ eBPF แทน iptables โดยมันทำงานระดับ kernel (เร็วกว่า) มี security + observability built-in พัฒนาโดย Isovalent (ปัจจุบันอยู่ภายใต้ Cisco)

3. eBPF คือหัวใจสำคัญ

eBPF (Extended Berkeley Packet Filter) คือ ส่วนของซอฟต์แวร์ที่รันใน Linux kernel สามารถเข้าไปเชื่อมเข้าไปใน network stack ได้โดยตรง ผลลัพธ์ก็คือ มันจะทำงานโดยไม่ต้องผ่าน iptables ทำให้ลด latency ไม่ต้อง traverse rules เยอะ ๆ และ ประมวลผล packet ได้เร็วมาก

4. Architecture ของ Cilium

4.1 Cilium Agent ซึ่งจะรันอยู่บนทุก node ทำหน้าที่จัดการ network ของ pod โดยจะทำการ inject eBPF program เข้า kernel
4.2 Cilium Operator ทำหน้าที่จัดการ IPAM และ sync cluster state
4.3 eBPF Programs ฝังใน kernel ทำหน้าที่เกี่ยวกับ packet filtering, load balancing และ routing
4.4 Hubble (Observability) ทำหน้าที่ monitor network traffic ซึ่งจะทำให้เราเห็น flow แบบ real-time

5. การทำงานของ Cilium

สำหรับการทำงานของ CNI แบบเดิมหรือ traditional จะใช้ iptables เป็นหลัก ซึ่งจะทำงานโดย packet เข้า node และข้อมูลจะวิ่งผ่าน iptables rules หลายตัว ซึ่งปกติเราจะสามารถเช็คได้ผ่านคำสั่ง iptables -L และ เนื่องจากความซับซ้อนของ rule ทำให้เกิดlatency สูง แต่  Cilium (eBPF) packet เข้า node และ eBPF intercept ทันที เพื่อการตัดสินใจ route/filter ได้เลย ลดความซับซ้อนลง และ ทำให้เร็วกว่าอย่างมีนัยสำคัญ

6. ความสามารถหลัก
6.1 Network Security (ทำงานตั้งแต่ L3 ถึง L7) โดยใน  L3/L4  คือการทำงานระดับ IP + Port และ  L7 ก็คือการทำงานในระดับ application HTTP, gRPC เช่นการ allow เฉพาะ `GET /api` หรือ block POST ก็ทำได้ด้วย ซึ่งนั่นหมายถึง มีความยืดหยุ่นสูงมากๆ
6.2 Kubernetes Network Policy รองรับ Kubernetes native policy และ  CiliumNetworkPolicy (advanced)
6.3 Load Balancing ไม่ต้องใช้ kube-proxy แต่จะใช้ eBPF แทน เรียกว่า kube-proxy replacement
6.4 Observability (Hubble) เราจะสามารถมอนิเตอร์ได้ว่า pod A เชื่อมไปยัง pod B และ ดูว่า request ไหนถูก block รวมถึงมี latency เท่าไร
6.5 Encryption รองรับ IPsec และ WireGuard
6.6 Service Mesh ทำได้เลย โดยไม่ต้องใช้ sidecar เช่น Istio ลด resource usage มาก

7. จุดเด่นของ Cilium

  • Performance สูง เพราะไม่มี iptables และ scale ได้ดี
  • Security ระดับสูง เพราะทำงานได้ถึง Layer 7 OSI Model
  • ทำงานแบบ identity-based (ไม่ใช่แค่ IP)
  • Debug ง่าย Hubble เห็น flow ชัด
  • Integrate กับระบบอื่นได้ดี
  • เป็น Kubernetes native รองรับ cloud (EKS, GKE, AKS)

8. ข้อเสีย / ข้อจำกัด

1. ต้องใช้ Kernel รุ่นใหม่ โดย eBPF ต้อง Linux kernel ≥ 4.19 (แนะนำ 5.x) และ บาง distro เช่น Rocky อาจมีปัญหา (คุณเคยเจอ Calico issue ก็เกี่ยว kernel ได้)
2. มีความซับซ้อนสูง และมี config เยอะ การ debug ต้องเข้าใจเกี่ยวกับ eBPF
3. Resource usage ใช้ CPU เพิ่มเล็กน้อย (เพราะ processing in-kernel)

9. เปรียบเทียบกับ CNI อื่น

Feature Flannel Calico Cilium
Performance ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
Network Policy ❌ ✅ ✅ (L7)
eBPF ❌ (partial) ✅
Observability ❌ ❌ ✅
Service Mesh ❌ ❌ ✅

10. ใช้ Cilium เมื่อไหร่

จริงๆ ต้องบอกว่ามันหมดกับ cluster ทุกขนาด เลยก็ว่าได้ ไม่ว่าจะเป็นขนาดเล็กจนถึงมากกว่า 100 nodes และใช้ workload แบบ microservices รวมถึงต้องการจัดการเรื่อง security ผ่าน API และ ต้องการระบบมอติเตอร์ที่ดี แต่มันอาจจะไม่ค่อยเหมาะสำหรับผู้ที่ต้องการความง่าย และสะดวก เพราะว่า flannel อาจจะรองรับได้อยู่แล้ว และ ง่ายกว่าในเรื่องการทำความเข้าใจ โดยเฉพาะผู้ที่ยังไม่ค่อยชำนาญเรื่องเครือข่าย

โดยสรุปเราอาจจะกล่าวได้ว่า Cilium คือCNI รุ่นใหม่ที่ใช้ eBPF เพื่อให้ network เร็ว, ปลอดภัย, และฉลาดกว่าแบบเดิม และที่สำคัญรองรับการขยายได้เยอะมาก

สนใจสอบถามเพิ่มเติมในเรื่อง CNI หรือ ต้องการใช้งาน Kubernetes หรือ Proxmox + Containers พูดคุยกับเราผ่าน Line OA @avesta.co.th หรืออีเมล์ [email protected]

 

 

Proxmox Backup Server (PBS): The Ideal Backup Solution for Proxmox VE

Proxmox Backup Server (PBS) คืออะไร ทำไมผู้ใช้ Proxmox VE ควรพิจารณาใช้อย่างยิ่ง ในปัจจุบันหลายองค์กรเลือกใช้...

Read more »

What is Extended Detection and Response XDR

Extended Detection and Response (XDR) XDR หรือ Extended Detection and...

Read more »

ตัวเลือกที่ดีในการมาใช้แทน Backup Exec

ทางเลือกสำหรับ Backup Exec หลังเข้าสู่ช่วง End-of-Life Backup Exec ได้เข้าสู่ช่วง End-of-Life (EOL)...

Read more »

เตรียมตัวรับ End-of-Life ใน Backup Exec ได้อย่างไรบ้าง

อย่างที่ท่านอาจจะทราบอยู่แล้ว ว่า เมื่อวันที่ 31 มีนาคม 2026 ที่ผ่านมาบริษัทแม่ของ Backup Exec ได้ประกาศ...

Read more »

Introduction to Apache Cassandra

Apache Cassandra คืออะไร? Apache Cassandra หรืออาจจะเรียกย่อๆ ว่า Cassandra  คือฐานข้อมูล NoSQL...

Read more »

Introduction to ElasticSearch

Elasticsearch คืออะไร? Elasticsearch คือ Search and Analytics Engine แบบกระจายศูนย์ (Distributed)...

Read more »