API Gateway Resource Adjustment Method
Hướng dẫn này giới thiệu ba phương pháp chính để tinh chỉnh hiệu suất API Gateway bằng cách điều chỉnh tài nguyên hệ thống và cấu hình nội bộ. Những phương pháp này có thể được áp dụng trong quá trình triển khai hoặc thủ công thông qua các tệp cấu hình và giao diện người dùng.
Phương pháp 1: Điều chỉnh Tài nguyên Pod (CPU / Bộ nhớ)
Khái niệm
Bạn có thể quản lý tài nguyên CPU và bộ nhớ cho Pod Kong Gateway đang chạy trong Kubernetes. Bằng cách thiết lập giới hạn và yêu cầu tài nguyên phù hợp, bạn giúp ổn định phiên bản gateway và đảm bảo hiệu suất tối ưu.
Phương pháp Cấu hình
Thiết lập giới hạn tài nguyên trong một trong hai:
- Helm values.yaml
- Kubernetes Deployment YAML
resources:
limits:
cpu: "1000m" # Tối đa 1 core
memory: "1024Mi" # Tối đa 1GB
requests:
cpu: "500m" # Đảm bảo 0.5 core
memory: "512Mi" # Đảm bảo 512Mi
Vị trí Áp dụng
- Triển khai dựa trên Helm: thêm vào values.yaml
- Triển khai thủ công: áp dụng dưới spec.template.spec.containers.resources trong tệp Deployment
Giao diện Liên quan
Trong bảng điều khiển APIM, điều hướng đến Trang Quản lý Gateway, nơi bạn có thể cấu hình trực quan:
- CPU / Bộ nhớ Gateway
- CPU / Bộ nhớ Cơ sở dữ liệu
- Số lượng Replica Gateway
Phương pháp 2: Tinh chỉnh Cài đặt Nginx thông qua Biến Môi trường
Khái niệm
Kong sử dụng Nginx bên trong, và một số cài đặt liên quan đến hiệu suất có thể được điều chỉnh bằng cách sử dụng biến môi trường hoặc trong tệp nginx.conf. Những điều này ảnh hưởng đến cách gateway xử lý các yêu cầu của khách hàng, bộ đệm và giới hạn kết nối.
Phương pháp Cấu hình
Thiết lập giá trị thông qua:
- KONG_ environment variables*
- Phần biến môi trường trong Helm values.yaml
env:
KONG_PROXY_ACCESS_LOG: "/dev/stdout"
KONG_ADMIN_ACCESS_LOG: "/dev/stdout"
KONG_CLIENT_BODY_BUFFER_SIZE: "16k"
KONG_CLIENT_MAX_BODY_SIZE: "128m"
KONG_LARGE_CLIENT_HEADER_BUFFERS: "4 16k"
KONG_NGINX_WORKER_PROCESSES: "2"
KONG_NGINX_WORKER_CONNECTIONS: "2048"
Tương đương trong nginx.conf
client_body_buffer_size 16k;
client_max_body_size 128m;
large_client_header_buffers 4 16k;
worker_processes 2;
worker_connections 2048;
Hầu hết các cài đặt này có thể được khai báo dưới dạng biến môi trường trong values.yaml. Khi triển khai, chúng sẽ tự động được phản ánh trong deployment.yaml.
Phương pháp 3: Tinh chỉnh Cơ sở dữ liệu và Tài nguyên Xử lý Upstream
Khái niệm
Khi Kong sử dụng PostgreSQL hoặc chạy ở chế độ không có cơ sở dữ liệu, việc sử dụng tài nguyên bị ảnh hưởng bởi số lượng kết nối DB được phép và cách cấu hình bộ nhớ đệm.
Phương pháp Cấu hình
env:
KONG_DATABASE: "postgres"
KONG_PG_MAX_CONCURRENT_QUERIES: "100"
KONG_PG_MAX_CONNECTIONS: "200"
Đối với Kong 3.x trở lên, bộ nhớ đệm có thể được cấu hình thêm:
env:
KONG_DB_CACHE_TTL: 3600 # Thời gian sống của bộ nhớ đệm (giây)
KONG_DB_CACHE_WARMUP_ENTITIES: "services,routes,plugins"
Mô tả Tham số
- KONG_PG_MAX_CONNECTIONS: Giới hạn kết nối DB
- KONG_DB_CACHE_TTL: Thời gian sống cho dữ liệu đã lưu trong bộ nhớ đệm
- KONG_DB_CACHE_WARMUP_ENTITIES: Các thực thể được tải trước vào bộ nhớ đệm khi khởi động
Các giá trị này có thể được quản lý trực tiếp trong Trang Quản lý Cổng của bảng điều khiển APIM.
Bảng Tóm tắt Các Tham số Cấu hình Chính
Parameter | Description | Where to Set |
---|---|---|
resources.limits.cpu / memory | CPU và bộ nhớ tối đa cho Pod | Triển khai / values.yaml |
resources.requests.cpu / memory | Phân bổ tài nguyên đảm bảo | Deployment / values.yaml |
KONG_CLIENT_MAX_BODY_SIZE | Kích thước tối đa của thân yêu cầu từ khách hàng | env / nginx.conf |
KONG_NGINX_WORKER_PROCESSES | Số lượng worker Nginx | env / nginx.conf |
KONG_PG_MAX_CONNECTIONS | Giới hạn kết nối DB | env |
KONG_DB_CACHE_TTL | Thời gian sống cho bộ nhớ đệm DB | env |
KONG_DB_CACHE_WARMUP_ENTITIES | Các thực thể bộ nhớ đệm đã được tải trước | env |