Cluster Kubernetes: การสร้าง Ingresses
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
วัตถุประสงค์
บทความนี้อธิบายการใช้งาน Cluster Kubernetes: การสร้าง Ingresses บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และ Resource เป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
ทางเข้าคือ Kubernetes Cluster load balancer ที่จัดการการเข้าถึงบริการภายนอก (external access) ให้การยุติ SSL และ Hosting เสมือนตามชื่อ มีการจัดการผ่านเซ็ตของกฎ (spec) ที่จับคู่กับคำขอที่เข้ามาทั้งหมด
เคล็ดลับ :
เมื่อเทียบกับบริการที่เปิดเผยผ่านNode Port, ingress เป็นตัวเลือกที่มีประสิทธิภาพมากกว่าแต่ก็ซับซ้อนกว่าด้วย จะมีประโยชน์ที่สุดเมื่อคุณต้องการเปิดเผยบริการหลายรายการภายใต้ IP address เดียวกัน นอกจากนี้ ingress ยังได้รับการจัดการโดยคอนโทรลเลอร์ซึ่งมีคุณสมบัติมากมายที่พร้อมใช้งาน (out-of-the-box) เช่น (SSL, auth, routing ฯลฯ )
แทรกซึมเข้ามาCluster Kubernetesได้รับการจัดการโดยทราฟิกตัวควบคุมทางเข้าตามค่าเริ่มต้นด้วยHAProxyและNGINXตัวเลือกที่มีใน 1.15.5 ที่กำลังจะมาถึงรุ่น Package. โดยจะเฝ้าดูวัตถุ แยกวิเคราะห์ข้อมูลจำเพาะ/คำอธิบายประกอบ และแปลเป็นกฎการเปลี่ยนเส้นทาง
Ingresses ในCluster Kubernetesได้รับการจัดการโดยทราฟิกingress controller ตามค่าเริ่มต้นพร้อมด้วยตัวเลือกHAProxyและNGINXที่มีให้ใน 1.15.5รุ่น Packageเฝ้าดูวัตถุ, แยกวิเคราะห์ข้อมูลจำเพาะ/คำอธิบายประกอบและแปลเป็นกฎการเปลี่ยนเส้นทาง
หมายเหตุ :
ไม่สามารถเปลี่ยน ingress controller ที่เลือกผ่านส่วนเสริม Kubernetes management หรือเครื่องมืออัตโนมัติอื่น ๆ หลังการติดตั้ง การดำเนินการยังสามารถทำได้ด้วยตนเอง โปรดติดต่อฝ่ายสนับสนุนหากต้องการความช่วยเหลือ
ingress spec คือ การรวมกันของกฎเส้นทางบริการ (path rule) แบ็คเอนด์และ Port ตัวอย่างเช่นทางเข้าของคุณอาจมีลักษณะดังนี้
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
labels:
app: myapp
name: myapp
annotations:
kubernetes.io/ingress.class: traefik
ingress.kubernetes.io/secure-backends: "true"
traefik.frontend.rule.type: PathPrefixStrip
spec:
rules:
- http:
paths:
- path: /myapp
backend:
serviceName: myapp
servicePort: 8080
ตัวอย่างนี้แสดงบริการ myapp ซึ่งผูกไว้กับ Port 8080 บนเส้นทางของ Domain เริ่มต้น (default domain) ของ Kubernetes environment ที่มีคำต่อท้ายเป็น /myapp suffix (i.e. https://${envName}.${platformDomain.com}/myapp) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่ากฎขาเข้า (ingress rules) (รวมถึงการกำหนด path และ subdomain-based routing) โปรดดูเอกสารอย่างเป็นทางการ
