Blog chia sẻ về công nghệ ...
Published on

Istio - Yêu cầu hệ thống trên Kubernetes

Authors

🧱 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

  1. Istio yêu cầu gì từ hệ thống?
  2. Danh sách các kernel module cần thiết
  3. Ghi chú cho chế độ mạng (dual-stack, ambient)
  4. Lưu ý với một số distro Linux đặc biệt
  5. 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ế độ):

ModuleGhi chú
br_netfilterBắt buộc để bridge có thể xử lý packet
iptable_mangleBắt buộc cho iptables thao tác gói tin
iptable_natBắt buộc để NAT gói tin
iptable_rawBắt buộc nếu bạn dùng DNS interception
xt_REDIRECTDùng để chuyển hướng cổng về proxy
xt_connmarkCần thiết cho Ambient hoặc Sidecar + TPROXY (mặc định)
xt_conntrackTheo 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_tcpudpLọc gói TCP hoặc UDP
xt_multiportLọc nhiều cổng một lúc
ip_setCần cho Ambient mode

🔄 Module phụ trợ nên được bật kèm:

ModuleGhi chú
bridgeHỗ trợ xử lý traffic qua bridge
ip_tablesYêu cầu chung cho iptables
nf_conntrackTheo dõi trạng thái kết nối
nf_natDịch địa chỉ mạng
nf_nat_redirectDùng cho REDIRECT
x_tablesBắ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,...

⚠️ 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!