CHƯƠNG 15 · Cilium, eBPF & Networking•BÀI 60 / 80

Playbook lỗi DNS/MTU/routing

Xác định lý do chỉ traffic cross-node mới timeout.

Mạng nâng cao◷ 4 phút đọc4/4 trong chương

Nắm bản chất

Nếu gọi cùng node thành công nhưng cross-node timeout, ưu tiên kiểm tra CNI routing/tunnels, host firewall, encapsulation UDP ports và MTU. Nếu toàn bộ requests lỗi DNS, ưu tiên CoreDNS, /etc/resolv.conf, Service name và NetworkPolicy egress DNS.

Packet loss/retransmission cũng có thể là hậu quả node CPU pressure hoặc conntrack saturation, không chỉ “mạng chậm”. Một luồng đo cần ghi rõ source Pod, destination Pod, node locations và thời điểm phát sinh.

Luồng hoạt động

Symptom→locality→routes/tunnels→verify

Hãy tự giải thích mỗi mũi tên: dữ liệu, quyền hoặc tín hiệu nào được truyền qua bước này?

Lệnh & cấu hình mẫu

kubectl get pods -A -o wide
kubectl -n apps exec deploy/api -- python -c   'import socket; print(socket.gethostbyname("payments.data.svc.cluster.local"))'
kubectl -n data get endpointslices
hubble observe --namespace data

Lệnh có placeholder hoặc phụ thuộc môi trường thì cần thay thông tin thực tế, kiểm tra quyền và chỉ thực hiện trên tài nguyên được phép.

Bài tập 10–20 phút

✳

Dùng lab Buổi 15 tạo một request trực tiếp giữa hai Pods ở hai nodes. Ghi routes và Hubble flows, rồi thay đổi policy chỉ trong namespace lab.

Lỗi dễ mắc

!

Không dùng network host mode, xóa policy hoặc mở mọi security group chỉ để request chạy. Những thay đổi đó có thể che nguyên nhân thật.

Tự kiểm tra

Timeout chỉ xảy ra giữa hai nodes, nên ưu tiên kiểm tra gì?Xem đáp án ↗

Cross-node CNI routing/tunnel/MTU/firewall cùng Pod placement, thay vì chỉ HTTP application logic.

TÀI NGUYÊN ĐI KÈM

Học thêm qua lab

Có project thực hành đúng với chương này, kèm README và những giới hạn môi trường cần lưu ý.

↓ Tải mã nguồn thực hành chương 15
NGUỒN CHÍNH THỨC

Đối chiếu tài liệu gốc

Cú pháp và khả năng hỗ trợ có thể thay đổi theo phiên bản. Trước khi dùng Production, hãy kiểm tra tài liệu tương ứng.

Mở tài liệu chính thức ↗