Cilium เป็นโซลูชันเครือข่ายการสังเกตและความปลอดภัยด้วย dataplane ที่ใช้ EBPF มันมีเครือข่ายเลเยอร์ 3 แบบเรียบง่ายที่มีความสามารถในการขยายหลายกลุ่มในโหมดการกำหนดเส้นทางเนทีฟหรือโหมดซ้อนทับ มันคือ L7-Protocol AWARE และสามารถบังคับใช้นโยบายเครือข่ายใน L3-L7 โดยใช้รูปแบบความปลอดภัยตามตัวตนที่แยกออกจากการกำหนดที่อยู่เครือข่าย
Cilium ใช้การปรับสมดุลโหลดแบบกระจายสำหรับการรับส่งข้อมูลระหว่าง PODs และบริการภายนอกและสามารถเปลี่ยน Kube-Proxy ได้อย่างเต็มที่โดยใช้ตารางแฮชที่มีประสิทธิภาพใน EBPF ช่วยให้เกือบไม่ จำกัด นอกจากนี้ยังรองรับฟังก์ชั่นขั้นสูงเช่นการเข้ารวมและเกตเวย์ egress, การจัดการแบนด์วิดท์และตาข่ายบริการและให้เครือข่ายลึกและการมองเห็นความปลอดภัยและการตรวจสอบ
เทคโนโลยีเคอร์เนล Linux ใหม่ที่เรียกว่า EBPF เป็นรากฐานของ Cilium รองรับการแทรกแบบไดนามิกของ EBPF bytecode ลงในเคอร์เนล Linux ที่จุดรวมต่างๆเช่น: เครือข่าย IO, ซ็อกเก็ตแอปพลิเคชันและ tracepoints เพื่อใช้ความปลอดภัยเครือข่ายและตรรกะการมองเห็น EBPF มีประสิทธิภาพสูงและยืดหยุ่น หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ EBPF เยี่ยมชม EBPF.IO
ชุมชน Cilium ยังคงมีการเปิดตัวที่มั่นคงเล็กน้อยสำหรับสามรุ่นรองล่าสุด รุ่นเก่าที่มีเสถียรภาพจากรุ่นที่มีเสถียรภาพจากรุ่นรองก่อนที่จะถือว่าเป็น EOL
สำหรับการอัพเกรดเป็นรุ่นรองใหม่โปรดปรึกษาคู่มือการอัพเกรด Cilium
รายการด้านล่างนี้เป็นสาขาที่ได้รับการดูแลอย่างแข็งขันพร้อมกับการเปิดตัวแพตช์ล่าสุดแท็กดึงภาพที่สอดคล้องกันและหมายเหตุการวางจำหน่ายของพวกเขา:
v1.16 | 2024-11-14 | quay.io/cilium/cilium:v1.16.4 | บันทึกย่อ |
v1.15 | 2024-11-14 | quay.io/cilium/cilium:v1.15.11 | บันทึกย่อ |
v1.14 | 2024-11-14 | quay.io/cilium/cilium:v1.14.17 | บันทึกย่อ |
ภาพ Cilium มีการแจกจ่ายสำหรับสถาปัตยกรรม AMD64 และ AARCH64
เริ่มต้นด้วย cilium เวอร์ชัน 1.13.0 ภาพทั้งหมดรวมถึงซอฟต์แวร์ Bill of Materials (SBOM) SBOM ถูกสร้างขึ้นในรูปแบบ SPDX ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้มีอยู่ใน Cilium SBOM
เพื่อวัตถุประสงค์ในการพัฒนาและการทดสอบชุมชน Cilium เผยแพร่สแน็ปช็อตผู้สมัครรุ่นแรก (RC) และภาพคอนเทนเนอร์ CI สร้างจากสาขาหลัก ภาพเหล่านี้ไม่ได้ใช้ในการผลิต
สำหรับการทดสอบการอัพเกรดไปยังการพัฒนาใหม่โปรดปรึกษาการพัฒนาล่าสุดของคู่มือการอัพเกรด Cilium
รายการด้านล่างนี้เป็นสาขาสำหรับการทดสอบพร้อมกับสแน็ปช็อตหรือรีลีส RC แท็กดึงภาพที่สอดคล้องกันและบันทึกย่อของพวกเขาหากมี:
หลัก | รายวัน | quay.io/cilium/cilium-ci:latest | N/A |
v1.17.0-pre.2 | 2024-11-01 | quay.io/cilium/cilium:v1.17.0-pre.2 | บันทึกผู้สมัครล่วงหน้า |
ความสามารถในการรักษาความปลอดภัยโปรโตคอลการใช้งานที่ทันสมัยเช่น REST/HTTP, GRPC และ KAFKA ไฟร์วอลล์แบบดั้งเดิมทำงานที่เลเยอร์ 3 และ 4 โปรโตคอลที่ทำงานบนพอร์ตเฉพาะนั้นน่าเชื่อถือหรือถูกบล็อกอย่างสมบูรณ์ Cilium ให้ความสามารถในการกรองคำขอโปรโตคอลแอปพลิเคชันแต่ละรายการเช่น:
อนุญาตให้มีการร้องขอ HTTP ทั้งหมดด้วยวิธี GET
และเส้นทาง /public/.*
ปฏิเสธคำขออื่น ๆ ทั้งหมด
อนุญาตให้ service1
ผลิตใน KAFKA TOPIC topic1
และ service2
เพื่อใช้ใน topic1
ปฏิเสธข้อความ Kafka อื่น ๆ ทั้งหมด
ต้องการส่วนหัว HTTP X-Token: [0-9]+
เพื่อให้อยู่ในการโทรที่เหลือทั้งหมด
ดูนโยบายส่วนเลเยอร์ 7 ในเอกสารของเราสำหรับรายการล่าสุดของโปรโตคอลที่รองรับและตัวอย่างเกี่ยวกับวิธีการใช้งาน
แอพพลิเคชั่นแบบกระจายที่ทันสมัยขึ้นอยู่กับเทคโนโลยีเช่นคอนเทนเนอร์แอปพลิเคชันเพื่ออำนวยความสะดวกความคล่องตัวในการปรับใช้และปรับขนาดตามความต้องการ สิ่งนี้ส่งผลให้คอนเทนเนอร์แอปพลิเคชันจำนวนมากเริ่มต้นในช่วงเวลาสั้น ๆ ไฟร์วอลล์คอนเทนเนอร์ทั่วไปที่ปลอดภัยเวิร์กโหลดโดยการกรองบนที่อยู่ IP ต้นทางและพอร์ตปลายทาง แนวคิดนี้ต้องการไฟร์วอลล์บนเซิร์ฟเวอร์ทั้งหมดที่จะถูกจัดการเมื่อใดก็ตามที่มีการเริ่มต้นคอนเทนเนอร์ทุกที่ในคลัสเตอร์
เพื่อหลีกเลี่ยงสถานการณ์นี้ซึ่ง จำกัด มาตราส่วน Cilium กำหนดเอกลักษณ์ความปลอดภัยให้กับกลุ่มของคอนเทนเนอร์แอปพลิเคชันที่มีนโยบายความปลอดภัยที่เหมือนกัน ตัวตนจะเชื่อมโยงกับแพ็คเก็ตเครือข่ายทั้งหมดที่ปล่อยออกมาโดยคอนเทนเนอร์แอปพลิเคชันช่วยให้สามารถตรวจสอบตัวตนที่โหนดที่ได้รับ การจัดการเอกลักษณ์ความปลอดภัยดำเนินการโดยใช้ร้านค้าคีย์-ค่า
ความปลอดภัยตามฉลากเป็นเครื่องมือของตัวเลือกสำหรับการควบคุมการเข้าถึงภายในคลัสเตอร์ เพื่อให้การเข้าถึงและจากบริการภายนอกปลอดภัยนโยบายความปลอดภัยที่ใช้ CIDR แบบดั้งเดิมสำหรับทั้งทางเข้าและ egress ได้รับการสนับสนุน สิ่งนี้อนุญาตให้ จำกัด การเข้าถึงและจากคอนเทนเนอร์แอปพลิเคชันไปยังช่วง IP เฉพาะ
เครือข่ายเลเยอร์ 3 แบบเรียบง่ายที่มีความสามารถในการขยายหลายกลุ่มเชื่อมต่อคอนเทนเนอร์แอปพลิเคชันทั้งหมด การจัดสรร IP นั้นง่ายโดยใช้การจัดสรรขอบเขตโฮสต์ ซึ่งหมายความว่าแต่ละโฮสต์สามารถจัดสรร IPS ได้โดยไม่ต้องประสานงานระหว่างโฮสต์
รองรับโมเดลเครือข่ายหลายโหนดต่อไปนี้:
การซ้อนทับ: เครือข่ายเสมือนที่ใช้การห่อหุ้มซึ่งครอบคลุมโฮสต์ทั้งหมด ปัจจุบัน VXLAN และ GENEVE ถูกอบ แต่สามารถเปิดใช้งานรูปแบบการห่อหุ้มทั้งหมดที่รองรับโดย Linux ได้
เมื่อใดควรใช้โหมดนี้: โหมดนี้มีโครงสร้างพื้นฐานและข้อกำหนดการรวมขั้นต่ำ มันทำงานกับโครงสร้างพื้นฐานเครือข่ายเกือบทุกประเภทเนื่องจากข้อกำหนดเพียงอย่างเดียวคือการเชื่อมต่อ IP ระหว่างโฮสต์ซึ่งโดยทั่วไปจะได้รับแล้ว
การกำหนดเส้นทางดั้งเดิม: การใช้ตารางเส้นทางปกติของโฮสต์ Linux เครือข่ายจะต้องมีความสามารถในการกำหนดเส้นทางที่อยู่ IP ของคอนเทนเนอร์แอปพลิเคชัน
เมื่อใดที่ควรใช้โหมดนี้: โหมดนี้ใช้สำหรับผู้ใช้ขั้นสูงและต้องการการรับรู้ถึงโครงสร้างพื้นฐานเครือข่ายพื้นฐาน โหมดนี้ใช้งานได้ดีกับ:
เครือข่าย IPv6 ดั้งเดิม
ร่วมกับเราเตอร์เครือข่ายคลาวด์
หากคุณกำลังเรียกใช้ Daemons เส้นทางอยู่แล้ว
Cilium ใช้การปรับสมดุลโหลดแบบกระจายสำหรับการรับส่งข้อมูลระหว่างคอนเทนเนอร์แอปพลิเคชันและบริการภายนอกและสามารถแทนที่ส่วนประกอบได้อย่างเต็มที่เช่น Kube-Proxy โหลดบาลานซ์จะถูกนำไปใช้ใน EBPF โดยใช้แฮชที่มีประสิทธิภาพซึ่งช่วยให้ได้สเกลเกือบไม่ จำกัด
สำหรับการปรับสมดุลการโหลดแบบเหนือ-ใต้การใช้งาน EBPF ของ Cilium นั้นได้รับการปรับให้เหมาะสมสำหรับประสิทธิภาพสูงสุดสามารถแนบกับ XDP (เส้นทางข้อมูลด่วน) และรองรับการส่งคืนเซิร์ฟเวอร์โดยตรง (DSR) รวมถึงการแฮชที่สอดคล้องกันของ Maglev หากการดำเนินการโหลดบาลานซ์ไม่ได้ดำเนินการ บนโฮสต์แหล่งที่มา
สำหรับการปรับสมดุลโหลดแบบ East-West Cilium ดำเนินการแปลอย่างมีประสิทธิภาพต่อแบ็คเกิร์นในชั้นซ็อกเก็ตของเคอร์เนล Linux (เช่นเวลาเชื่อมต่อ TCP) ซึ่งสามารถหลีกเลี่ยงการใช้งาน NAT แบบต่อแพ็คเก็ตได้ในชั้นล่าง
Cilium ใช้การจัดการแบนด์วิดธ์ผ่านการ จำกัด อัตรา EDT ที่มีประสิทธิภาพ (เร็วที่สุด) จำกัด อัตราด้วย EBPF สำหรับการรับส่งข้อมูลคอนเทนเนอร์ที่กำลังออกโหนด สิ่งนี้ช่วยลดเวลาแฝงหางส่งสัญญาณสำหรับการใช้งานอย่างมีนัยสำคัญและเพื่อหลีกเลี่ยงการล็อคภายใต้ NIC แบบหลายคิวเมื่อเทียบกับวิธีการดั้งเดิมเช่น HTB (ถังโทเค็นลำดับชั้น) หรือ TBF (ตัวกรองถังโทเค็น) ตามที่ใช้ในปลั๊กอิน CNI แบนด์วิดท์
ความสามารถในการมองเห็นและแก้ไขปัญหาเป็นพื้นฐานในการดำเนินงานของระบบกระจายใด ๆ ในขณะที่เราเรียนรู้ที่จะรักเครื่องมือเช่น tcpdump
และ ping
และในขณะที่พวกเขาจะพบสถานที่พิเศษในใจของเราเสมอเรามุ่งมั่นที่จะจัดหาเครื่องมือที่ดีกว่าสำหรับการแก้ไขปัญหา ซึ่งรวมถึงเครื่องมือที่จะให้:
การตรวจสอบเหตุการณ์ด้วยข้อมูลเมตา: เมื่อแพ็คเก็ตถูกทิ้งเครื่องมือไม่เพียง แต่รายงาน IP ต้นทางและปลายทางของแพ็คเก็ตเครื่องมือจะให้ข้อมูลฉลากเต็มรูปแบบของทั้งผู้ส่งและตัวรับสัญญาณท่ามกลางข้อมูลอื่น ๆ จำนวนมาก
การส่งออกตัวชี้วัดผ่าน Prometheus: ตัวชี้วัดที่สำคัญจะถูกส่งออกผ่าน Prometheus เพื่อรวมเข้ากับแดชบอร์ดที่มีอยู่ของคุณ
ฮับเบิล: แพลตฟอร์มการสังเกตที่เขียนขึ้นโดยเฉพาะสำหรับ cilium ให้บริการแผนที่การพึ่งพาบริการการตรวจสอบการปฏิบัติงานและการแจ้งเตือนและแอปพลิเคชันและการมองเห็นความปลอดภัยตามบันทึกการไหล
ทำไมต้อง cilium?
เริ่มต้น
สถาปัตยกรรมและแนวคิด
การติดตั้ง cilium
คำถามที่พบบ่อย
การบริจาค
Berkeley Packet Filter (BPF) เป็น Linux Kernel Bytecode Interpreter เดิมแนะนำให้รู้จักกับแพ็คเก็ตเครือข่ายกรองเช่นสำหรับตัวกรอง TCPDump และซ็อกเก็ต ชุดคำสั่ง BPF และสถาปัตยกรรมโดยรอบเพิ่งได้รับการปรับปรุงใหม่อย่างมีนัยสำคัญกับโครงสร้างข้อมูลเพิ่มเติมเช่นตารางแฮชและอาร์เรย์เพื่อรักษาสถานะรวมถึงการกระทำเพิ่มเติมเพื่อรองรับแพ็คเก็ต mangling การส่งต่อการห่อหุ้ม ฯลฯ สำหรับโปรแกรมที่จะเขียนใน C และรวบรวมเป็นคำแนะนำ BPF ตัวตรวจสอบในเคอร์เนลทำให้มั่นใจได้ว่าโปรแกรม BPF นั้นปลอดภัยในการรันและคอมไพเลอร์ JIT แปลง BPF ไบต์เป็นคำแนะนำเฉพาะสถาปัตยกรรม CPU สำหรับประสิทธิภาพการดำเนินการดั้งเดิม โปรแกรม BPF สามารถทำงานได้ที่จุดเชื่อมต่อต่างๆในเคอร์เนลเช่นสำหรับแพ็คเก็ตที่เข้ามาแพ็กเก็ตขาออกการโทรระบบ kprobes uprobes tracepoints ฯลฯ
BPF ยังคงพัฒนาและได้รับความสามารถเพิ่มเติมด้วยการเปิดตัว Linux ใหม่แต่ละรายการ cilium leverages BPF เพื่อดำเนินการกรองเส้นทางข้อมูลหลัก, การจัดการ, การตรวจสอบและการเปลี่ยนเส้นทางและต้องใช้ความสามารถ BPF ที่อยู่ในเคอร์เนล Linux เวอร์ชัน 4.8.0 หรือใหม่กว่า
การแจกแจง Linux จำนวนมากรวมถึง CoreOS, Debian, Linuxkit ของ Docker, Fedora, OpenSuse และ Ubuntu ได้จัดส่งเคอร์เนลรุ่นแล้ว> = 4.8.x คุณสามารถตรวจสอบเวอร์ชันเคอร์เนล Linux ของคุณโดยใช้ uname -a
หากคุณยังไม่ได้ใช้งานเคอร์เนลล่าสุดให้ตรวจสอบเอกสารการแจกจ่าย Linux ของคุณเกี่ยวกับวิธีเรียกใช้ Linux เคอร์เนล 4.9.x หรือใหม่กว่า
หากต้องการอ่านในเวอร์ชันเคอร์เนลที่จำเป็นเพื่อเรียกใช้รันไทม์ BPF ให้ดูที่ข้อกำหนดเบื้องต้น
XDP เป็นขั้นตอนต่อไปในการวิวัฒนาการและทำให้สามารถใช้รสชาติเฉพาะของโปรแกรม BPF จากไดรเวอร์เครือข่ายด้วยการเข้าถึงโดยตรงไปยังบัฟเฟอร์ DMA ของแพ็คเก็ต นี่คือจุดที่เป็นไปได้ที่เร็วที่สุดในสแต็กซอฟต์แวร์ซึ่งสามารถแนบโปรแกรมเพื่อให้สามารถใช้โปรเซสเซอร์แพ็คเก็ตประสิทธิภาพสูงที่ตั้งโปรแกรมได้ในเส้นทางข้อมูลเครือข่ายเคอร์เนล Linux
ข้อมูลเพิ่มเติมเกี่ยวกับเป้าหมาย BPF และ XDP สำหรับนักพัฒนาสามารถพบได้ในคู่มืออ้างอิง BPF และ XDP
หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับ Cilium ส่วนขยายและการใช้กรณีรอบ ๆ cilium และ BPF จะดูที่ส่วนการอ่านเพิ่มเติม
เข้าร่วมช่อง Cilium Slack เพื่อแชทกับนักพัฒนา Cilium และผู้ใช้ Cilium อื่น ๆ นี่เป็นสถานที่ที่ดีในการเรียนรู้เกี่ยวกับ cilium ถามคำถามและแบ่งปันประสบการณ์ของคุณ
ดูกลุ่มผลประโยชน์พิเศษสำหรับรายการ SIG ทั้งหมดและเวลาการประชุมของพวกเขา
ชุมชนนักพัฒนาซีเลียมออกไปเที่ยวซูมเพื่อแชท ยินดีต้อนรับทุกคน
รายสัปดาห์วันพุธเวลา 17:00 น. ยุโรป/ซูริคเวลา (CET/CEST) มักจะเทียบเท่ากับ 8:00 น. PT หรือ 11:00 น. ET บันทึกการประชุมและข้อมูลซูม
วันพุธที่สามของแต่ละเดือนเวลา 9:00 น. เวลาญี่ปุ่น (JST) หมายเหตุการประชุม APAC และข้อมูลซูม
เราเป็นเจ้าภาพจัดการ Livestream ชุมชนรายสัปดาห์ที่เรียกว่า Echo ซึ่ง (หลวมมาก!) หมายถึงเวลาทำงานของ EBPF & Cilium เข้าร่วมกับเราสดทันกับตอนที่ผ่านมาหรือตรงไปที่ Echo Repo และแจ้งให้เราทราบความคิดของคุณสำหรับหัวข้อที่เราควรครอบคลุม
โครงการ Cilium ถูกควบคุมโดยกลุ่มผู้ดูแลและผู้มอบหมาย วิธีที่พวกเขาได้รับการคัดเลือกและการปกครองมีการระบุไว้ในเอกสารการกำกับดูแลของเรา
รายชื่อผู้ใช้ของโครงการ Cilium ที่กำลังปรับใช้ในการผลิตและกรณีการใช้งานของพวกเขาสามารถพบได้ใน file users.md
Cilium รักษาแผนงานสาธารณะ มันให้มุมมองระดับสูงของลำดับความสำคัญหลักสำหรับโครงการวุฒิภาวะของคุณสมบัติและโครงการที่แตกต่างกันและวิธีการมีอิทธิพลต่อทิศทางโครงการ
ส่วนประกอบพื้นที่ผู้ใช้ Cilium ได้รับอนุญาตภายใต้ใบอนุญาต Apache เวอร์ชัน 2.0 เทมเพลตรหัส BPF นั้นได้รับใบอนุญาตคู่ภายใต้ใบอนุญาตสาธารณะทั่วไปเวอร์ชัน 2.0 (เท่านั้น) และใบอนุญาต BSD 2 ข้อ (คุณสามารถใช้ข้อกำหนดของใบอนุญาตทั้งที่ตัวเลือกของคุณ)