ข้ามไปที่เนื้อหาหลัก

การใช้งาน Kong manager บน Docker เบื้องต้น


 Kong เป็นแพลตฟอร์ม API Gateway ที่ได้รับความนิยมอย่างมาก ซึ่งใช้สำหรับจัดการ, ควบคุม, และรักษาความปลอดภัยในการเชื่อมต่อระหว่างบริการ (services) ต่างๆ ภายในระบบ โดย Kong สามารถติดตั้งและใช้งานได้ผ่าน Docker ซึ่งทำให้สะดวกในการตั้งค่าและใช้งานในสภาพแวดล้อมต่างๆ จัดการ API ในระบบที่มีการเชื่อมต่อหลายๆ บริการหรือ Microservices

คุณสมบัติหลักของ Kong

  1. API Gateway: Kong ทำหน้าที่เป็นเกตเวย์สำหรับการควบคุมและจัดการการเรียกใช้งาน API โดยสามารถทำการบังคับใช้นโยบาย, การรับรองความถูกต้อง, การควบคุมการเข้าถึง และการตรวจสอบการใช้งาน API

  2. Load Balancing: Kong สามารถกระจายการโหลดของ API ไปยังหลายเซิร์ฟเวอร์หรือเซอร์วิสได้ เพื่อปรับปรุงประสิทธิภาพและความยืดหยุ่นของระบบ

  3. Rate Limiting: คุณสามารถกำหนดขีดจำกัดการใช้งาน API ได้ (rate limiting) เพื่อป้องกันการใช้งานมากเกินไปหรือลดการโจมตีจาก DDOS

  4. Plugins: Kong มีปลั๊กอินมากมายที่สามารถเพิ่มคุณสมบัติต่างๆ ได้ เช่น การตรวจสอบ JWT, การบีบอัดข้อมูล, การทำ cache, และอื่นๆ ซึ่งสามารถปรับแต่งได้ตามความต้องการ


ขั้นตอนการติดตั้ง Kong 
1.สร้างไฟล์ docker-compose.yml
version: '3.7'

services:
  kong-database:
    image: postgres:13
    container_name: kong-database
    environment:
      POSTGRES_USER: kong
      POSTGRES_DB: kong
      POSTGRES_PASSWORD: kong
    networks:
      - kong-net
    volumes:
      - kong-data:/var/lib/postgresql/data

  kong-migration:
    image: kong:latest
    container_name: kong-migration
    command: "kong migrations bootstrap"
    environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: kong-database
      KONG_PG_PASSWORD: kong
    networks:
      - kong-net
    depends_on:
      - kong-database

  kong:
    image: kong:latest
    container_name: kong
    environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: kong-database
      KONG_PG_PASSWORD: kong
      KONG_PROXY_ACCESS_LOG: /dev/stdout
      KONG_ADMIN_ACCESS_LOG: /dev/stdout
      KONG_PROXY_ERROR_LOG: /dev/stderr
      KONG_ADMIN_ERROR_LOG: /dev/stderr
      KONG_ADMIN_LISTEN: 0.0.0.0:8001, 0.0.0.0:8444 ssl
      KONG_PROXY_LISTEN: 0.0.0.0:80, 0.0.0.0:443 ssl
    networks:
      - kong-net
    ports:
      - "8000:8000"
      - "8443:8443"
      - "8001:8001"
      - "8444:8444"
      # - "80:80"
      # - "443:443"
    depends_on:
      - kong-migration

  kong-manager:
    image: kong:latest
    container_name: kong-manager
    environment:
      KONG_DATABASE: postgres
      KONG_PG_HOST: kong-database
      KONG_PG_PASSWORD: kong
      KONG_ADMIN_GUI_ACCESS_LOG: /dev/stdout
      KONG_ADMIN_GUI_ERROR_LOG: /dev/stderr
      KONG_ADMIN_LISTEN: 0.0.0.0:8001, 0.0.0.0:8444 ssl
      KONG_ADMIN_GUI_LISTEN: 0.0.0.0:8002, 0.0.0.0:8445 ssl
    networks:
      - kong-net
    ports:
      - "8002:8002"
      - "8445:8445"
    depends_on:
      - kong

volumes:
  kong-data:
  esdata:

networks:
  kong-net:
    external: true


2. ติดตั้ง kong ผ่าน composer ด้วยคำสั่ง docker-compose up -d
3. เข้าไปที่ URL : http://localhost:8002 

4. ส่วนที่เราต้องจัดการหลักๆ จะมี Gateway Service กับ Route ถ้าอธิบายแบบง่ายคือ 
Gateway Service คือ Endpoint ที่จะให้ API ของเราชี้ไปที่ไหน
Routes คือ API Endpoint ที่ใช้เรียก
ตัวอย่างเช่น ต้องการให้ API ชื่อ test.lib.kmutnb.ac.th/api ลิงก์ไปที่ IP 192.168.4.1 จะทำตามขั้นตอนดังนี้
    4.1 สร้าง Gateway Service -> New Gateway Service เพิ่มรายละเอียดที่สำคัญได้กี่ ชื่อ Service Host ให้ใส่เป็น 192.168.4.1 Path ถ้ามี path ย่อยลงไปในระบบของ API ของเรา และ port ที่กำหนดไว้
    4.2 เมื่อสร้าง Service เสร็จแล้วจะมีรายการที่เราสร้างขึ้นให้กดเข้าไปที่รายการ Service ที่ต้องการ เพื่อทำการสร้าง Route 
    สำหรับการสร้าง Route จะประกอบไปด้วยส่วนการตั้งชื่อ กับ ส่วนของการตั้งค่าเรียก API ส่วนที่จะต้องกำหนดให้ชัดเจนคือ
    - Protocols แนะนำเป็นทั้ง http และ https
    - Paths ตามตัวอย่างเราต้องใส่ /api 
    - Methods สามารถกำหนดได้ว่าต้องการให้เรียก API ได้ในรูปแบบใดบ้าง ในที่นี้จะทำให้เรียกได้ทั้ง GET และ POST 


    4.3 หลังจากที่ตั้งค่าเสร็จแล้วให้กดปุ่ม save จากนั้นก็ทำการทดสอบ API ได้จากโปรแกรมต่างๆ เช่น postman

นี่เป็นเพียงการใช้งานเบื้องต้น ยังมี ส่วนของ plugin ที่สามารถติดได้เพิ่มเติมอีกมากมาย เช่น ACL ที่ใช้ควบคุม Consumers รวมไปถึง basic-auth ที่ใช้กำหนด username password ในการเข้าถึง api 


โพสต์ยอดนิยมจากบล็อกนี้

การจองสมาร์ทรูม (Smart Room) สำนักหอสมุดกลาง

                ในยุคที่เทคโนโลยีและนวัตกรรมดิจิทัลเข้ามามีบทบาทสำคัญในสายงานต่าง ๆ สำนักหอสมุดกลาง ก็ได้นำเทคโนโลยีสมาร์ทรูม (Smart Room) เข้ามาใช้ในการบริการนักศึกษา เพื่อเพิ่มประสิทธิภาพในการเข้าถึงข้อมูลและทรัพยากรสารสนเทศต่าง ๆ ได้อย่างมีประสิทธิผลและสะดวกสบายมากขึ้น                Smart Room เป็นพื้นที่การเรียนรู้ที่ใช้เทคโนโลยีล้ำสมัย ออกแบบมาเพื่อตอบสนองความต้องการของนักศึกษาและบุคลากรในการค้นคว้า วิจัย และทำงานร่วมกัน ซึ่งจะช่วยส่งเสริมให้เกิดบรรยากาศการเรียนรู้ที่ทันสมัยและสนับสนุนการใช้ทรัพยากรสารสนเทศในรูปแบบที่มีประสิทธิภาพมากยิ่งขึ้น   โดยสามารถเข้าจองสมาร์ทรูม ( Smart Room) ไดัตามขั้นตอนดังต่อไปนี้                ขั้นตอนที่ 1 เข้าเว็บไซต์ของสำนักหอสมุดกลาง มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ ผ่านทาง https://library.kmutnb.ac.th จากนั้นเลือกเมนู จองห้องออนไลน์ ดังภาพที่ 1           ...

การใช้งาน docker Desktop บน windows

  Docker Desktop คือเครื่องมือแบบ all-in-one ที่ช่วยให้คุณสามารถพัฒนา, รัน และจัดการ container บนระบบปฏิบัติการ Windows และ macOS ได้อย่างง่ายดาย โดย Docker Desktop มาพร้อมกับทุกสิ่งที่คุณต้องการสำหรับการทำงานกับ Docker รวมถึง: Docker Engine : ซึ่งเป็นหัวใจหลักของ Docker ที่ใช้ในการสร้างและรัน container Docker CLI (Command Line Interface) : เครื่องมือสำหรับการจัดการ Docker ผ่านคำสั่งใน terminal หรือ command prompt Docker Compose : เครื่องมือสำหรับการจัดการ container หลายตัวพร้อมกันด้วยไฟล์ docker-compose.yml Docker Dashboard : อินเตอร์เฟซแบบกราฟิกที่ช่วยให้คุณสามารถดูและจัดการ container, image, network, และ volume ได้อย่างง่ายดายโดยไม่ต้องใช้คำสั่ง Kubernetes (เป็นทางเลือก): สำหรับผู้ที่ต้องการทดสอบหรือพัฒนาแอปพลิเคชันบน Kubernetes, Docker Desktop มี Kubernetes cluster ในตัวที่สามารถเปิดใช้งานได้จากการตั้งค่า คุณสมบัติหลักของ Docker Desktop การติดตั้งง่าย : Docker Desktop มีตัวติดตั้งที่ออกแบบมาให้ใช้งานได้ง่าย โดยไม่จำเป็นต้องติดตั้งส่วนประกอบเพิ่มเติมหลายๆ ส่วนด้วยตนเอง การอัพเ...

ปัญหากวนใจเครื่องปริ้น ปริ้นไม่ออก และวิธีแก้ไข

  ปัญหากวนใจเครื่องปริ้น ปริ้นไม่ออก และวิธีแก้ไข เครื่องปริ้นพิมพ์ไม่ออก ปัญหาโลกแตกที่ผู้ใช้งานเครื่องพิมพ์พบเจอกันเป็นประจำ เพราะเราใช้เครื่องปริ้นในการทำงานทั้งในสำนักงาน ห้างร้านต่างๆ รวมถึงที่บ้านก็เช่นกัน ซึ่งปัญหาเครื่องปริ้นท์ใช้งานไม่ได้ เครื่องปริ้นพิมพ์ไม่ออก อาจเกิดได้จากหลายสาเหตุ ทั้งปัญหาทางฮาร์ดแวร์ ซอฟต์แวร์ หรือการติดตั้ง รวม ถึงการใช้งานที่ไม่ถูกต้องด้วย เมื่อเกิดปัญหาขึ้น จึงจำเป็นต้องหาสาเหตุให้เจอ เพื่อจะสามารถแก้ไขได้ตรงจุด บทความนี้ TechSpace ได้รวบรวมวิธีการแก้ไขปัญหาเมื่อเครื่องปริ้นไม่สามารถพิมพ์ได้ เพื่อเป็นแนวทางให้ผู้ใช้งานสามารถแก้ไขปัญหาเหล่านี้ด้วยตัวเองได้ 1. ปริ้นไม่ออกเนื่องจากกระดาษติด (Paper Jam) หากเครื่องปริ้นท์เตือนว่ามีกระดาษติด สิ่งที่ต้องทำคือตรวจสอบว่ากระดาษอยู่ในตำแหน่งที่ถูกต้องหรือไม่ ปกติแล้วการนำกระดาษออกจากเครื่องแล้วเรียงใหม่จะช่วยแก้ปัญหานี้ได้ และอย่าลืมดูจำนวนกระดาษให้มีความจุที่เหมาะสมกับถาดกระดาษ เพราะถาดกระดาษของเครื่องปริ้นท์แต่ละเครื่องถูกออกแบบมาเพื่อรองรับความจุกระดาษอย่างจำกัด 2. ไดร์เวอร์เครื่องปริ้นมีปัญหา ไดร์เวอร์เ...