We build things and write about it
KKloud Tarus is a small team of engineers and creators who love turning ideas into real things. We share what we learn along the way.
Recent Writing
Hubble Bên Trong: Từ Sự Kiện eBPF Tới Luồng Mạng Toàn Cụm
Hubble cho ta xem mọi kết nối trong cụm Kubernetes theo tên pod, service, verdict policy — mà không cài sidecar vào pod nào. Bài này mổ cơ chế: datapath eBPF của Cilium (74 chương trình sched_cls ở Bài 12) gọi bpf_perf_event_output đẩy sự kiện vào một perf ring buffer tên cilium_events; cilium-agent đọc ra (cilium monitor cho thấy sự kiện thô với identity dạng số); rồi Hubble giàu hóa — biến identity 18203 thành kube-system/coredns — bằng cách tra kho identity-nhãn. Ta xem cả ba tầng chạy thật.
Kiểu Tetragon: Từ Quan Sát Đến Cưỡng Chế Bằng bpf_send_signal
Tetragon là công cụ an ninh runtime của hệ Cilium: nó quan sát bằng kprobe/tracepoint (đúng những hook Part II dùng) rồi cưỡng chế ngay trong nhân. Cơ chế cưỡng chế thật của nó là hai helper — bpf_send_signal gửi SIGKILL giết tiến trình, và bpf_override_return ghi đè giá trị trả về syscall. Bài này tự dựng đúng cơ chế đó: một tracepoint exec gọi bpf_send_signal(SIGKILL) để giết một tiến trình ngay khi nó chạy — binary cấm nhận exit 137, binary thường vẫn chạy. Không cần LSM hay reboot.
LSM BPF: Cưỡng Chế An Ninh Ngay Trong Nhân
Tới giờ eBPF của ta chỉ quan sát. LSM BPF thì cưỡng chế: gắn vào các điểm kiểm soát an ninh của nhân (Linux Security Modules) mà SELinux, AppArmor dùng, và một chương trình trả về 0 cho qua hay -EPERM để chặn. Bài này viết một chương trình LSM chặn mở file, và gặp một bài học thật: lần đầu nó nạp và gắn được nhưng không chặn gì — vì bpf chưa nằm trong danh sách LSM hoạt động. Bật bpf bằng tham số boot rồi reboot, cùng chương trình đó chặn thật — cat và python đều nhận Operation not permitted.
Bài đọc nhiều nhất
Hubble Bên Trong: Từ Sự Kiện eBPF Tới Luồng Mạng Toàn Cụm
Hubble cho ta xem mọi kết nối trong cụm Kubernetes theo tên pod, service, verdict policy — mà không cài sidecar vào pod nào. Bài này mổ cơ chế: datapath eBPF của Cilium (74 chương trình sched_cls ở Bài 12) gọi bpf_perf_event_output đẩy sự kiện vào một perf ring buffer tên cilium_events; cilium-agent đọc ra (cilium monitor cho thấy sự kiện thô với identity dạng số); rồi Hubble giàu hóa — biến identity 18203 thành kube-system/coredns — bằng cách tra kho identity-nhãn. Ta xem cả ba tầng chạy thật.
Kiểu Tetragon: Từ Quan Sát Đến Cưỡng Chế Bằng bpf_send_signal
Tetragon là công cụ an ninh runtime của hệ Cilium: nó quan sát bằng kprobe/tracepoint (đúng những hook Part II dùng) rồi cưỡng chế ngay trong nhân. Cơ chế cưỡng chế thật của nó là hai helper — bpf_send_signal gửi SIGKILL giết tiến trình, và bpf_override_return ghi đè giá trị trả về syscall. Bài này tự dựng đúng cơ chế đó: một tracepoint exec gọi bpf_send_signal(SIGKILL) để giết một tiến trình ngay khi nó chạy — binary cấm nhận exit 137, binary thường vẫn chạy. Không cần LSM hay reboot.
Vì Sao Dựng Kubernetes Bằng Tay, và Ta Sẽ Dựng Cái Gì
Mở đầu series: 'from scratch' nghĩa là tự tay tạo từng certificate, bootstrap từng binary, nối mạng pod — không kubeadm, không script. Vì sao đi đường dài này lại giúp hiểu Kubernetes nhanh hơn, ta sẽ dựng một cluster HA ra sao, rồi dùng chính nó làm phòng thí nghiệm để đi sâu vào toàn bộ concept của Kubernetes.
Series
eBPF Từ Số Không
Học eBPF từ nền tảng tới tự viết chương trình thật — máy ảo eBPF, verifier, maps, các hook (XDP/tc/kprobe/tracepoint/LSM); tracing với bpftrace; viết chương trình bằng libbpf + CO-RE (C) rồi nạp từ Go (cilium/ebpf); networking, observability và security. Dùng một cụm Kubernetes thật (kernel 6.17, Cilium 1.19 eBPF kube-proxy-less với hàng trăm chương trình BPF đang chạy) làm phòng lab xuyên suốt. Test thật, bám docs chính thức (ebpf.io, kernel.org, libbpf, cilium). Mã nguồn tại github.com/nghiadaulau/ebpf-from-scratch.
22 parts→
Kubernetes Từ Số Không
Dựng một cluster Kubernetes hoàn chỉnh bằng tay — không kubeadm, không script — từ certificate đầu tiên tới một cluster HA chạy thật, rồi dùng chính nó làm phòng thí nghiệm để deep-dive toàn bộ concept của Kubernetes. Phần một: PKI/TLS, etcd, control plane, worker, mạng pod, CoreDNS. Phần hai: Pods, workload controllers, scheduling, storage, networking nâng cao (Cilium eBPF), bảo mật, mở rộng API, vận hành. Mỗi thành phần vừa được giải thích cơ chế bên trong, vừa tự dựng/cấu hình tay. Test thật trên AWS EC2 với Kubernetes v1.36, manifest/script lưu tại github.com/nghiadaulau/kubernetes-from-scratch. Bám docs chính thức kubernetes.io.
73 parts→
Kubernetes Với Minikube
Học Kubernetes từ nền tảng bằng minikube — một cluster gọn chạy ngay trên máy bạn. Series đi qua kiến trúc, Pod, Deployment, Service, ConfigMap/Secret, lưu trữ, Ingress, health check, autoscaling và các loại workload, khép lại bằng một dự án deploy hoàn chỉnh. Mọi lệnh chạy thật trên minikube, manifest lưu tại github.com/nghiadaulau/kubernetes-minikube-series. Bám docs chính thức kubernetes.io.
15 parts→
The Team Behind KKloud Tarus
Engineers, creators, and problem solvers.