Bài này nói về cách giao tiếp giữa các EKS Cluster khác nhau. Một vài câu hỏi quan trọng ở phần này là: làm thế nào để Pod nằm ở EKS này gọi sang Pod nằm ở EKS khác? Ingress và Gateway API? Internal DNS giữa các tài khoản AWS khác nhau? Ta điều hướng truy cập của người dùng từ bên ngoài vào hệ thống của ta thế nào?
Giao tiếp giữa Pod với Pod khác Kubernetes Cluster
Trong Kubernetes để giao tiếp giữa Pod với Pod trong nội bộ một Kubernetes Cluster ta thường dùng Service dạng ClusterIP.
Tiếp đó để bên ngoài có thể gọi được vào Pod ở trong Kubernetes Cluster ta thường dùng Service dạng LoadBalancer hoặc Ingress.
Nên để Pod nằm ở Kubernetes Cluster này gọi sang Pod nằm ở Kubernetes Cluster khác cách đơn giản nhất là ta triển khai Ingress trên từng Cluster. Khi Pod ở Cluster này cần gọi qua Pod nằm ở Cluster khác thì nó gọi vào Ingress và ta cấu hình Ingress để điều hướng truy cập đi vào trong Pod.
Ingress và Gateway API
Ingress là cách phổ biến để quản lý truy cập bên ngoài vào các dịch vụ chạy bên trong Kubernetes Cluster. Tuy nhiên nó có hạn chế là chỉ hỗ trợ các giao thức Layer 7 như HTTP và HTTPS, còn với các giao thức ở tầng khác như TCP và UDP ở Layer 4 thì không. Do đó nếu cần điều hướng truy cập giao thức TCP và UDP thì ta cần dùng Service dạng Network Load Balancer.
EKS từ bản 1.24 trở lên giới thiệu Gateway API hỗ trợ cả giao thức ở Layer 7 (HTTP và HTTPS) và Layer 4 (TCP và UDP). Gateway API gồm GatewayClass, Gateway và HTTPRoute để ta quản lý truy cập vào bên Trong Kubernetes giống với Ingress.
Note: Gateway API khác với API Gateway
Hệ thống Vikki sử dụng Istio để định nghĩa Gateway cho giao tiếp giữa các Kubernetes Cluster thay vì Ingress.
Continuing …
Điểm hẹn ngân hàng số Vikki by HDBank
Loạt bài viết ngắn chia sẻ về kiến trúc hạ tầng của hệ thống ngân hàng trên Cloud (AWS). Đây chỉ là những kiến thức mình học được thông qua sản phẩm NGÂN HÀNG SỐ VIKKI của bên mình, nên kiến trúc có thể phù hợp và không phù hợp với doanh nghiệp của các bạn.
- AWS Account Management
- Provisioning Infrastructure for Multi AWS Accounts
- Networking for Multi AWS Accounts
- Kubernetes for Multi AWS Accounts: Kubernetes Infrastructure for Scale
- Kubernetes for Multi AWS Accounts: Kubernetes Cross Cluster Communication
- Chaos Engineering
- On-call
- Core Banking on Cloud
- Security Consider