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

Using Static PV When Deploying Kong API Gateway

Tổng quan

Theo mặc định, khi tạo một Kong Gateway bằng cách sử dụng giao diện APIM, Persistent Volume Claim (PVC) và Persistent Volume (PV) được cấp phát động thông qua StorageClass. Tuy nhiên, trong một số môi trường nhất định, bạn có thể muốn sử dụng các PV tĩnh đã được cấp phát trước. Hướng dẫn này giải thích cách cấu hình và triển khai một Kong Gateway sử dụng các PV tĩnh.

Thiết lập trước khi triển khai

Định nghĩa tên Gateway trước

Quyết định và liệt kê các tên Gateway mà bạn dự định triển khai.

Ví dụ:

  • test-gw
  • dev-gw

Tạo PVC liên kết với PV tĩnh một cách thủ công

Quy ước đặt tên PVC:

data-<GATEWAY_NAME>-postgresql-0

Ví dụ:

data-test-gw-postgresql-0

Đảm bảo rằng PVC đã được liên kết trước với PV tĩnh phù hợp.

Triển khai Gateway và xử lý di chuyển khởi tạo

Tạo Gateway qua giao diện APIM

Sử dụng cùng một tên như đã định nghĩa trước đó (ví dụ: test-gw) trong quá trình tạo Gateway trong giao diện APIM.

Xử lý lỗi khởi động Pod di chuyển

  • Tại bước init-migrations, Pod có thể thất bại nếu cơ sở dữ liệu chưa sẵn sàng.
  • Điều này thường do các vấn đề về thời gian, nơi Kong khởi động trước khi cơ sở dữ liệu được khởi tạo hoàn toàn.

Thực hiện di chuyển thủ công

Kiểm tra nhật ký Pod Kong

Xác nhận rằng Pod đang chờ di chuyển thông qua một trong các nhật ký sau:

kong migrations bootstrap

hoặc

kong migrations up

Thêm lệnh Sleep vào Container Kong

Chỉnh sửa thông số triển khai với một lệnh tùy chỉnh để giữ cho container Kong đang chạy:

command: ["/bin/bash", "-c", "sleep 300000"]

Điều này đảm bảo rằng container Kong vào trạng thái ngủ sau khi init-container hoàn thành.

Thực hiện Di chuyển Thủ công (Trong Pod)

Chạy các lệnh sau để thực hiện di chuyển một cách thủ công:

k exec -it -n <namespace> <kong-pod-name> -- kong migrations bootstrap
k exec -it -n <namespace> <kong-pod-name> -- kong migrations up

Hoàn tất cho Hoạt động Bình thường

Xóa Sleep và Khởi động lại Kong:

  • Khôi phục hoặc xóa lệnh tùy chỉnh khỏi thông số Deployment.
  • Khởi động lại Pod Kong để cho phép nó khởi động bình thường.

Ghi chú Bổ sung

  • Quy trình này chỉ cần thiết khi sử dụng PV tĩnh trong quá trình thiết lập Gateway ban đầu.
  • Trong môi trường sản xuất, đảm bảo rằng DB đã sẵn sàng hoàn toàn trước khi Kong khởi động. Sử dụng các cài đặt phù hợp như:
    • initContainer
    • readinessProbe