- Published on
Istio - Yêu cầu hệ thống trên Kubernetes
- Authors
- Name
- Bạch Đăng Tuấn
- Occupation
- Kỹ sư công nghệ thông tin
- Zalo: 0934.01.07.04
🧱 Yêu cầu hệ thống cho Istio trên Kubernetes
Đây là bài viết dành cho người mới sử dụng Istio, giải thích kỹ các module kernel mà hệ điều hành Linux cần bật để Istio hoạt động đúng.
📑 Mục Lục
- Istio yêu cầu gì từ hệ thống?
- Danh sách các kernel module cần thiết
- Ghi chú cho chế độ mạng (dual-stack, ambient)
- Lưu ý với một số distro Linux đặc biệt
- Kết luận
📦 Istio yêu cầu gì từ hệ thống?
Để hoạt động được, Istio cần hệ thống có iptables, vì nó dựa vào iptables để định tuyến lưu lượng giữa các dịch vụ.
- Istio dùng
iptables
để chặn, chuyển hướng và xử lý traffic đi qua các proxy Envoy. - Các tính năng như DNS interception, TPROXY hay mTLS đều có liên quan đến các module này.
⚠️ Quan trọng: Một số Linux kernel không bật sẵn các module này, hoặc bị chặn bởi selinux
, nên cần kiểm tra kỹ nếu dùng các distro như RHEL/CentOS.
🔧 Danh sách kernel module cần thiết
✅ Các module chính (bắt buộc cho hầu hết chế độ):
Module | Ghi chú |
---|---|
br_netfilter | Bắt buộc để bridge có thể xử lý packet |
iptable_mangle | Bắt buộc cho iptables thao tác gói tin |
iptable_nat | Bắt buộc để NAT gói tin |
iptable_raw | Bắt buộc nếu bạn dùng DNS interception |
xt_REDIRECT | Dùng để chuyển hướng cổng về proxy |
xt_connmark | Cần thiết cho Ambient hoặc Sidecar + TPROXY (mặc định) |
xt_conntrack | Theo dõi kết nối mạng |
xt_mark | Đánh dấu gói tin theo rule iptables |
xt_owner | Định danh gói tin theo user/process |
xt_tcpudp | Lọc gói TCP hoặc UDP |
xt_multiport | Lọc nhiều cổng một lúc |
ip_set | Cần cho Ambient mode |
🔄 Module phụ trợ nên được bật kèm:
Module | Ghi chú |
---|---|
bridge | Hỗ trợ xử lý traffic qua bridge |
ip_tables | Yêu cầu chung cho iptables |
nf_conntrack | Theo dõi trạng thái kết nối |
nf_nat | Dịch địa chỉ mạng |
nf_nat_redirect | Dùng cho REDIRECT |
x_tables | Bắt buộc để iptables hoạt động |
🌐 Dành cho IPv6 hoặc Dual-stack Cluster:
Module |
---|
ip6table_mangle |
ip6table_nat |
ip6table_raw |
ip6_tables |
nf_conntrack_ipv6 |
nf_nat_ipv6 |
📘 Ghi chú cho các chế độ dataplane
- Sidecar mode (mặc định):
- Cần các module: xt_REDIRECT, iptable_nat, xt_tcpudp,...
- Sidecar + TPROXY mode:
- Thêm: xt_mark, xt_connmark
- Ambient mode:
- Cần
ip_set
,xt_mark
,xt_connmark
,ip_set_hash_ip
,...
- Cần
⚠️ Lưu ý với các distro đặc biệt
- Trên một số phiên bản RHEL/CentOS,
selinux
có thể chặn tự động load module. - Nếu thấy lỗi traffic không chuyển được vào sidecar → kiểm tra
dmesg
,lsmod
,iptables -t nat -L
.
Bạn có thể thử chạy:
lsmod | grep iptable
modprobe iptable_nat
🎯 Kết luận
Để Istio hoạt động trơn tru trong Kubernetes:
- ✅ Hệ điều hành nên là Linux có hỗ trợ iptables
- ✅ Các module kernel cần được bật (tự động hoặc thủ công)
- 🔍 Với Ambient mode hoặc IPv6, cần nhiều module hơn
💡 Bạn nên xác minh hệ thống có đầy đủ các module trên trước khi triển khai Istio vào production!