Internal communication method between K8s Pod A and Pod B via API GW
Hướng dẫn này giải thích cách kích hoạt giao tiếp nội bộ giữa hai Pods Kubernetes - Pod A (Khách hàng) và Pod B (Máy chủ) - thông qua API Gateway trong cùng một môi trường cụm. API Gateway định tuyến các yêu cầu nội bộ bằng cách sử dụng tên dịch vụ Kubernetes và quy tắc proxy Kong.
Tổng quan về khái niệm
- Pod A: Pod khách hàng khởi tạo yêu cầu API.
- Pod B: Pod máy chủ nhận và xử lý yêu cầu API.
- API Gateway: Định tuyến các yêu cầu dựa trên các quy tắc đã cấu hình bằng cách sử dụng phát hiện dịch vụ và định tuyến dựa trên tiêu đề (thông qua Kong).
Cấu hình này cho phép các cuộc gọi API nội bộ liền mạch giữa các dịch vụ chạy trong cùng một cụm, đảm bảo khả năng mở rộng và trừu tượng hóa dịch vụ.
Cấu hình từng bước
Đăng ký dịch vụ của Pod B làm API Backend
Khi tạo API trong APIM Console, hãy chỉ định Service FQDN của Pod B làm URL Backend. FQDN này đảm bảo rằng gateway có thể định tuyến lưu lượng truy cập nội bộ đến dịch vụ thích hợp.
Ví dụ về URL Backend:
[http://svc-apim-gateway-manager.apim.svc.cluster.local:8081](http://svc-apim-gateway-manager.apim.svc.cluster.local:8081/)
- svc-apim-gateway-manager: Tên dịch vụ Kubernetes của Pod B.
- apim: Tên không gian của Pod B.
- svc.cluster.local: Tên miền cụm mặc định.
- 8081: Cổng dịch vụ được Pod B công khai.
Việc đăng ký backend này cho phép API GW định tuyến lưu lượng truy cập đến Pod B bằng cách sử dụng phát hiện dịch vụ dựa trên DNS nội bộ.
Gửi yêu cầu qua Kong Proxy từ Pod A
Sau khi đăng ký API, Pod A có thể gọi API đã được công khai bằng cách truy cập địa chỉ dịch vụ nội bộ của Kong Proxy và thiết lập tiêu đề Host chính xác. Kong sẽ định tuyến yêu cầu đến Pod B tương ứng.
Yêu cầu mẫu:
curl -H "Host: `<desired-host>`" \
http://`<KONG_PROXY_SERVICE>`.`<kong-namespace>`.svc.cluster.local/svc-b/api
- Thay thế desired-host bằng tên máy chủ đã đăng ký trong cấu hình API.
- Thay thế KONG_PROXY_SERVICE bằng tên dịch vụ của Kong Proxy của bạn.
- Thay thế kong-namespace bằng không gian tên nơi Kong được triển khai.
- /svc-b/api là đường dẫn được ánh xạ đến API backend.
Tiêu đề Host xác định tuyến đường nào trong Kong sẽ được kích hoạt. Đảm bảo nó khớp với tuyến đường đã đăng ký trong quá trình tạo API.
Ghi chú
- Cài đặt này hoạt động hoàn toàn trong mạng Kubernetes sử dụng DNS nội bộ.
- Đảm bảo rằng Kong Proxy có quyền truy cập vào FQDN của dịch vụ đích.
- Tất cả các dịch vụ liên quan (Kong, Pod A, Pod B) phải ở trong các không gian tên có thể giải quyết dịch vụ của nhau thông qua DNS hoặc các chính sách mạng thích hợp.