Istio là một nền tảng điều phối dịch vụ (service mesh) mã nguồn mở được thiết kế để kết nối, bảo mật và quản lý các microservices. Khi các ứng dụng hiện đại được phát triển theo kiến trúc microservices, việc giao tiếp giữa các thành phần (dịch vụ) trở nên phức tạp. Istio giúp đơn giản hóa quá trình này bằng cách cung cấp một lớp quản lý dịch vụ giữa các microservices mà không cần thay đổi mã nguồn của chúng.
Các thành phần chính của Istio:
Envoy Proxy: Istio sử dụng proxy Envoy để làm thành phần cơ bản trong việc điều phối giao tiếp giữa các dịch vụ. Envoy Proxy được triển khai dưới dạng sidecar cho mỗi dịch vụ để thực hiện các nhiệm vụ như cân bằng tải, quản lý kết nối, và mã hóa giao tiếp.
Pilot: Quản lý cấu hình và cung cấp các quy tắc giao tiếp cho Envoy Proxy, đồng thời duy trì trạng thái của mạng lưới dịch vụ (service mesh).
Mixer: Thành phần cung cấp tính năng theo dõi và chính sách cho hệ thống. Mixer chịu trách nhiệm phân tích dữ liệu từ các dịch vụ, áp dụng chính sách và ghi log dữ liệu.
Citadel: Cung cấp các chứng chỉ bảo mật (mã hóa TLS) cho các dịch vụ trong mạng lưới để đảm bảo các giao tiếp đều được mã hóa.
Galley: Đảm bảo tính chính xác của cấu hình khi nhập vào hệ thống và duy trì sự đồng nhất của các quy tắc trong toàn bộ mesh.
Lợi ích chính của Istio:
Quản lý lưu lượng: Kiểm soát các yêu cầu giữa các dịch vụ với chính sách phức tạp như cân bằng tải, giới hạn tốc độ, và triển khai dần (canary deployments).
Bảo mật: Cung cấp các tính năng mã hóa mạnh mẽ (TLS), nhận dạng dịch vụ và xác thực dịch vụ giữa các microservices.
Giám sát: Theo dõi sức khỏe của hệ thống và tạo các log chi tiết về việc giao tiếp giữa các dịch vụ.
Khả năng chịu lỗi: Cải thiện khả năng phục hồi bằng cách tự động phát hiện và xử lý lỗi trong khi duy trì hoạt động của hệ thống.
Mô hình của Istio
Dưới đây là một hình ảnh mô tả về mô hình hoạt động của Istio, trong đó các microservices được kết nối với nhau thông qua các Envoy Proxy được triển khai dưới dạng sidecar:
Istiod sẽ quản lý và cấu hình sidecar container proxy, đóng vai trò như một service discovery cho toàn bộ proxy. Istiod sẽ chuyển toàn bộ cấu hình routing rules sang dạng cấu hình của Envoy và chuyển nó tới toàn bộ Envoy container.
Envoy container sẽ thực hiện việc giao tiếp giữa các Pod với nhau, các tính năng nổi bật của Envoy:
Dynamic service discovery
Load balancing
TLS termination
HTTP/2 and gRPC proxies
Circuit breakers
Health checks
Staged rollouts with %-based traffic split
Fault injection
Rich metrics
Tham khảo: https://istio.io/latest/docs/overview/what-is-istio/ https://devopsvn.tech/service-mesh-on-kubernetes/gioi-thieu-istio-istio-la-gi
You need to login in order to like this post: click here