Hướng Dẫn Sử Dụng Kong API Gateway Bằng Docker - Techmaster

Kong API Gateway được thiết kế hỗ trợ cho việc xây dựng hệ thống microservice. Bài viết này hướng dẫn các bạn cài đặt Kong qua docker, đồng thời cài đặt open source dashboard.

Để sử dụng Kong API qua Docker, bạn cần cài đặt Docker. Kong cần kết nối vào database hoặc là Postgresql hoặc là Casandra. Bài này chỉ tập trung hướng dẫn kết nối vào Postgresql

Mô hình mạng của các container
Cài đặt Kong

Sau khi đã có Docker bật terminal lên rồi gõ lệnh như sau: docker network create my-net

Lệnh này tạo một network bridge cho phép các container chúng ta sắp tạo nhìn thấy nhau và kết nối được với nhau qua tên host.

Tạo container Postgresql dùng baseimage là Alpine cho nhẹ docker run -d --name kong-database \ --network my-net \ -p 5432:5432 \ -e "POSTGRES_USER=kong" \ -e "POSTGRES_DB=kong" \ postgres:alpine

Chạy một container tạm thời (ephemeral, chạy xong rồi xoá). Container này sử dụng image kong:latest sau đó chạy lệnh kong migrations up để khởi tạo dữ liệu vào container kong-database vừa khởi tạo ở bước trên. docker run --rm \ --network my-net \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ kong:latest kong migrations up

Thực sử khởi động container kong, chạy ở chế độ detach mode, nối vào container kong-database, đặt giá trị cho một số biến môi trường -e, ánh xạ cổng 8000, 8443, 8001 và 8444 vào host docker run -d --name kong \ --network my-net \ -e "KONG_DATABASE=postgres" \ -e "KONG_PG_HOST=kong-database" \ -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \ -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \ -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \ -e "KONG_ADMIN_LISTEN=0.0.0.0:8001" \ -e "KONG_ADMIN_LISTEN_SSL=0.0.0.0:8444" \ -p 8000:8000 \ -p 8443:8443 \ -p 8001:8001 \ -p 8444:8444 \ kong:latest

Nối vào terminal của container kong docker exec -it kong /bin/sh

Gõ lệnh với kong CLI sh-4.2# kong health nginx.......running Kong is healthy at /usr/local/kong sh-4.2# kong version 0.12.1

Mấy tay lập trình Kong API Gateway vui tính phết, tạo hẳn một lệnh kong roar (gầm) để in ra console hình Khỉ đột leo tháp. sh-4.2# kong roar -- Kong, Monolith destroyer. -- -- /\ ____ -- <> ( oo ) -- <>_| ^^ |_ -- <> @ \ -- /~~\ . . _ | -- /~~~~\ | | -- /~~~~~~\/ _| | -- |[][][]/ / [m] -- |[][][[m] -- |[][][]| -- |[][][]| -- |[][][]| -- |[][][]| -- |[][][]| -- |[][][]| -- |[][][]| -- |[][][]| -- |[|--|]| -- |[| |]| -- ======== -- ========== -- |[[ ]]| -- ==========Tạo API forward

Bước tiếp theo hãy thực hành theo hướng dẫn ở đây để thêm request routing

Tạo một API forward curl -i -X POST \ --url http://localhost:8001/apis/ \ --data 'name=example-api' \ --data 'hosts=example.com' \ --data 'upstream_url=http://mockbin.org'

Gõ lệnh để kiểm tra với API forward vừa được tạo curl -i -X GET \ --url http://localhost:8000/ \ --header 'Host: example.com'Cài đặt dashboard

Cài Kong Dashboard open source https://github.com/PGBI/kong-dashboard docker run --rm --network my-net -p 8080:8080 pgbi/kong-dashboard start --kong-url http://kong:8001

KongA cũng là một lựa chọn dashboard open source khác. Cài đặt cần có 2 bước: docker run -d --name kongadb \ --network my-net \ -e "POSTGRES_USER=konga" \ -e "POSTGRES_PASSWORD=k0ng@123-" \ -e "POSTGRES_DB=konga_database" \ postgres:alpine docker run -d -p 1337:1337 \ --name konga \ --network my-net \ -e "DB_ADAPTER=postgres" \ -e "DB_HOST=kongadb" \ -e "DB_USER=konga" \ -e "DB_PASSWORD=k0ng@123-" \ -e "DB_DATABASE=kongadb" \ -e "NODE_ENV=development" \ pantsel/konga

Từ khóa » Cài đặt Kong Api