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 APIM UI, 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 Thủ Công Liên Kết với PV Tĩnh

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 APIM UI

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 APIM UI.

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 DB 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 DB đượ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 Ngủ vào Container Kong

Chỉnh sửa thông số Deployment 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 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 Để Vận Hành Bình Thường

Xóa Lệnh Ngủ 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 các 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