การกำหนดค่า
แพลตฟอร์มนี้มีศูนย์กลางการกำหนดค่าเพียงจุดเดียว คือไฟล์ values ของ Helm chart สำหรับความแตกต่างในแต่ละสภาพแวดล้อม เช่น โดเมน, แบบเดี่ยวหรือแบบ HA, แหล่งที่มาของ TLS หรือการเลือกระบบย่อยที่จะเปิดใช้งาน ทั้งหมดนี้เป็นค่ากำหนดในระดับบนสุดที่มีค่าเริ่มต้นที่เหมาะสมมาให้ในตัว คุณไม่จำเป็นต้องเข้าไปแก้ไข manifest ด้วยตนเอง และไม่ต้องจัดการค่ากำหนดในหลาย ๆ ที่พร้อมกัน
จุดกำหนดค่าเพียงหนึ่งเดียว ปรับปุ่มควบคุมเพียงไม่กี่จุด
โปรดหลีกเลี่ยงการแก้ไขสถานะในคลัสเตอร์โดยตรง และใช้วิธีการปรับเปลี่ยนค่าในไฟล์ค่ากำหนดแล้วสั่งรัน helm upgrade ใหม่แทน เนื่องจากการกำหนดค่าด้วยตนเองภายนอก chart จะเกิดปัญหาความคลาดเคลื่อนของข้อมูล (drift) และอาจถูกบันทึกทับในขั้นตอนการอัปเกรดหรือการปรับประสานสถานะครั้งถัดไป
โครงสร้างการจัดหมวดหมู่ค่ากำหนด
ค่ากำหนดต่าง ๆ จะถูกจัดกลุ่มตามวัตถุประสงค์การใช้งาน โดยมีกลุ่มสำคัญดังนี้
| กลุ่ม | รายละเอียดการควบคุม | เอกสารเพิ่มเติม |
|---|---|---|
global | โดเมนหลัก โดเมนย่อย ตัวคั่นโดเมน สวิตช์เปิดใช้งาน HA ระบบ registry/mirror ค่า Storage class และ namespace prefix | TLS และโดเมน, ระบบความพร้อมใช้งานสูง (High availability) |
tls | โหมดของใบรับรองและระบบออกใบรับรอง | TLS และโดเมน |
certManager, redisOperator, cnpg | เลือกว่าจะติดตั้ง operator เหล่านี้ใหม่หรือใช้งานระบบเดิมที่มีอยู่แล้ว | การใช้งาน operator เดิมบนคลัสเตอร์ |
postgres, redis, keycloak, controlPlane, console | ส่วนประกอบหลักในส่วนจัดเก็บสถานะและแอปพลิเคชัน | หน้านี้ |
observability | ชุดซอฟต์แวร์ระบบตรวจสอบสถานะการทำงานและระยะเวลาจัดเก็บข้อมูล | ระบบตรวจสอบสถานะการทำงานของแพลตฟอร์ม |
sso | การเข้าสู่ระบบด้วย OIDC สำหรับ console และแดชบอร์ด | SSO และ IdP |
budgets, rateLimits, guardrails, modelAllowlist, modelRouter | กำหนดค่าเริ่มต้นนโยบายความปลอดภัยสำหรับ data plane | งบประมาณและขีดจำกัด, ระบบป้องกัน (Guardrails) |
semantic, semanticCache, semanticGuard | ฐานข้อมูลเวกเตอร์ ข้อมูลฝังตัว และฟีเจอร์ที่เกี่ยวข้อง | ระบบแคชตามความหมาย (Semantic cache), ระบบตรวจสอบคำสั่งที่ไม่ปลอดภัย (Semantic guard) |
mcp | ระบบ MCP gateway | เซิร์ฟเวอร์ MCP |
audit | ระยะเวลาเก็บรักษาประวัติการใช้งาน (Audit log) | การตรวจสอบประวัติและการปฏิบัติตามข้อกำหนด |
images | ลิงก์อ้างอิง registry และเวอร์ชันของแต่ละส่วนประกอบที่ผ่านการทดสอบแล้ว | การอัปเกรดระบบ |
secrets | วิธีการระบุข้อมูลรับรองสิทธิ์และรหัสผ่าน | ส่วนข้อมูลที่เป็นความลับ (Secrets) ด้านล่าง |
dev | ตัวช่วยสำหรับทดสอบเท่านั้น ห้ามเปิดใช้งานในสภาพแวดล้อมจริงเด็ดขาด | หน้านี้ |
คุณสามารถตรวจสอบรายการคีย์ทั้งหมดพร้อมค่าเริ่มต้นได้ที่ เอกสารอ้างอิงการกำหนดค่า
โดเมนและตัวคั่นตัวตน
global.baseDomain ทำหน้าที่เป็นโดเมนหลัก โดยโดเมนย่อยแต่ละรายการจะอยู่ในรูปแบบ <label><separator><baseDomain> ตัวคั่นใน global.subdomainSeparator จะมีค่าเริ่มต้นเป็น "." เช่น api.ai-gateway.example.com หรือเลือกใช้เป็น "-" เพื่อให้ทุกบริการทำงานอยู่ภายใต้ wildcard หลักตัวเดียวได้ เช่น api-ai-gateway.example.com ซึ่งจะอยู่ภายใต้ความครอบคลุมของ *.example.com
ตัวตนผู้เช่า (Tenant identity) จะใช้งานข้อมูล tuple แบบ 3 ส่วน คือ organization.project.user เป็นชื่อผู้บริโภค ซึ่งเป็นรูปแบบโครงสร้างหลักที่อยู่เบื้องหลังคีย์ งบประมาณ และการแยกส่วนข้อมูล ดูรายละเอียดเพิ่มเติมได้ที่ ระบบหลายผู้เช่า (Multi-tenancy)
การเปิดใช้งานระบบย่อยเพิ่มเติม
ระบบย่อยส่วนใหญ่จะเปิดใช้งานได้ผ่านสวิตช์ enabled พร้อมกับการกำหนดค่าเพิ่มเติมอีกเล็กน้อย ตัวอย่างเช่น
controlPlane:
enabled: true # จำเป็นต้องเปิดใช้งานสำหรับใช้งาน console, งบประมาณ และค่ากำหนดประจำโปรเจกต์
postgres:
enabled: true # แหล่งข้อมูลความจริงหนึ่งเดียวสำหรับ control plane
keycloak:
enabled: true # ระบบเชื่อมต่อตัวตนระดับองค์กร (per-org SSO)
semanticCache:
enabled: true # จำเป็นต้องใช้ semantic.qdrant และ semantic.ollama โดยระบบจะตั้งค่าให้โดยอัตโนมัติ
mcp:
enabled: true # MCP gatewayการขึ้นต่อกันของระบบ (dependency) จะถูกควบคุมอย่างเหมาะสม ตัวอย่างเช่น control plane จำเป็นต้องใช้งาน PostgreSQL และฟีเจอร์ด้านความหมาย (semantic) จะช่วยเปิดใช้งานโครงสร้าง Qdrant และ Ollama ร่วมกันโดยอัตโนมัติเมื่อมีการเปิดใช้งานฟีเจอร์ตัวใดตัวหนึ่งขึ้นมา
ข้อมูลที่เป็นความลับ (Secrets)
ข้อมูลสิทธิ์การใช้งานและรหัสผ่านจะไม่มีวันถูกจัดเก็บในไฟล์ values ที่คุณคอมมิต โดยระบบรองรับการทำงาน 2 รูปแบบดังนี้
secrets.createFromValues: true— ตัว chart จะสร้าง Kubernetes Secrets ขึ้นมาจากไฟล์ values อีกไฟล์หนึ่งที่ถูกแยกส่วนและถูกระบุในไฟล์.gitignoreซึ่งเป็นวิธีที่สะดวกสำหรับขั้นตอนเริ่มต้นใช้งานsecrets.createFromValues: false— ตัว chart จะอ้างอิงไปยัง Secrets เดิมที่มีอยู่แล้วในระบบ ซึ่งคุณดูแลจัดการผ่าน Vault, sealed-secrets หรือระบบภายนอกอื่น ๆ ซึ่งเป็นวิธีแนะนำสำหรับสภาพแวดล้อมที่ใช้งานจริง
ดูรายละเอียดเพิ่มเติมได้ที่คู่มือ การเสริมสร้างความปลอดภัย (Hardening) สำหรับแนวทางการจัดการข้อมูลที่เป็นความลับทั้งหมด
การปรับใช้การเปลี่ยนแปลง
helm upgrade opsta-ai-gateway oci://ghcr.io/opsta/charts/opsta-ai-gateway \
-n opsta-ai-gateway -f values.yaml -f secrets-values.yamlข้อมูลนโยบายความปลอดภัยและข้อมูลผู้เช่า เช่น ผู้บริโภค งบประมาณ ผู้ให้บริการ รูปแบบกฎป้องกัน (guardrail patterns) จะถูกจัดการผ่านทาง control plane ในขณะระบบกำลังทำงาน และจะถูกปรับประสานสถานะไปยัง gateway อย่างต่อเนื่อง โดยการเปลี่ยนแปลงเหล่านี้ไม่จำเป็นต้องทำการอัปเกรด Helm chart เนื่องจากตัว chart จะเป็นเจ้าของค่ากำหนดในระดับผลิตภัณฑ์ (product-level) ส่วน control plane จะเป็นเจ้าของค่ากำหนดในระดับผู้เช่า (tenant-level) ดูรายละเอียดเพิ่มเติมได้ที่ สถาปัตยกรรมระบบ
ขั้นตอนต่อไป
- เอกสารอ้างอิงการกำหนดค่า — รายการคีย์กำหนดค่าทั้งหมดพร้อมระบุค่าเริ่มต้น
- TLS และโดเมน · ระบบความพร้อมใช้งานสูง (High availability) · การติดตั้งในระบบปิด (Air-gapped install)