Chuyển tới nội dung chính

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

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 / memoryCPU và bộ nhớ tối đa cho PodTriển khai / values.yaml
resources.requests.cpu / memoryPhân bổ tài nguyên đảm bảoDeployment / values.yaml
KONG_CLIENT_MAX_BODY_SIZEKích thước tối đa của thân yêu cầu từ khách hàngenv / nginx.conf
KONG_NGINX_WORKER_PROCESSESSố lượng worker Nginxenv / nginx.conf
KONG_PG_MAX_CONNECTIONSGiới hạn kết nối DBenv
KONG_DB_CACHE_TTLThời gian sống cho bộ nhớ đệm DBenv
KONG_DB_CACHE_WARMUP_ENTITIESCác thực thể bộ nhớ đệm đã được tải trướcenv