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

Istio - Giải thích chi tiết kiến trúc cho người mới

Authors

🏗️ Kiến trúc Istio: Giải thích chi tiết cho người mới bắt đầu

Đây là bài viết dành cho người mới tìm hiểu về Istio, trình bày chi tiết về kiến trúc, vai trò các thành phần và cách chúng tương tác.


📑 Mục Lục

  1. Tổng quan kiến trúc Istio
  2. Data Plane: Envoy Proxy
  3. Control Plane: Istiod
  4. Sơ đồ kiến trúc
  5. Tóm tắt

📦 Tổng quan kiến trúc Istio

Istio được chia thành hai thành phần chính:

  • Data Plane: Nơi xử lý toàn bộ traffic giữa các microservice.
  • Control Plane: Nơi cấu hình, quản lý và bảo mật cho các proxy trong Data Plane.
User --> App A --> Envoy Proxy (Sidecar)
                   Control bởi Istiod
              Envoy Proxy (Sidecar) --> App B

📌 Data Plane - Envoy Sidecar

Envoy là một proxy hiệu suất cao do Lyft phát triển bằng C++.

Trong Istio, Envoy được triển khai kèm theo mỗi Pod (sidecar). Vai trò của nó:

  • 📡 Trung gian mọi traffic: Tất cả request vào/ra ứng dụng đều đi qua Envoy
  • 🔐 Bảo mật: Hỗ trợ mTLS, xác thực, ủy quyền
  • 🎯 Điều phối lưu lượng: retry, circuit breaker, canary rollout,...
  • 📊 Thu thập telemetry: logs, metrics, traces

Tính năng chính:

  • Dynamic service discovery
  • Load balancing
  • TLS termination
  • HTTP/2, gRPC proxy
  • Rich metrics
  • Fault injection
  • Traffic shifting
  • Retry, Failover

✅ Ưu điểm: không cần sửa ứng dụng, chỉ cần cài Istio là Envoy hoạt động liền.


🧠 Control Plane - Istiod

Istiod là thành phần trung tâm quản lý toàn bộ hoạt động của Istio.

Chức năng chính:

  • 📍 Service discovery (dò tìm dịch vụ đang chạy)
  • 🔀 Chuyển cấu hình YAML thành cấu hình cho Envoy
  • 🔐 Cấp chứng chỉ, quản lý mTLS
  • ⚙️ Đồng bộ và cập nhật cấu hình cho sidecar

Ngoài ra:

  • Làm Certificate Authority (CA) → phát hành chứng chỉ cho mTLS
  • Tạo và phân phối cấu hình về routing, policy
  • Cho phép tích hợp với Kubernetes hoặc máy ảo (VM)

💡 Istiod giống như “trung tâm điều hành”, còn Envoy là “nhân viên thực thi”.


🗺️ Sơ đồ kiến trúc đơn giản

[User Request]
[App A] <--> [Envoy Sidecar A] <--> [Envoy Sidecar B] <--> [App B]
                          [Istiod - Control Plane]
              [Service Discovery / Routing / Policy / mTLS]

📋 Tóm tắt

Thành phầnVai trò chính
EnvoyGiao tiếp mạng, bảo mật, giám sát traffic
IstiodCấu hình Envoy, cấp chứng chỉ, service discovery

👉 Với kiến trúc này:

  • Bạn không cần sửa ứng dụng
  • Có thể áp dụng bảo mật, routing nâng cao
  • Giám sát dễ dàng và chuẩn hóa toàn hệ thống

🧠 Ghi nhớ: Istio giúp tách rời việc vận hành (control) khỏi mã ứng dụng, nhờ vào Envoy proxy và Istiod trung tâm. Đây là điểm mạnh của service mesh!