คลัสเตอร์ Kubernetes: การสร้าง Ingresses
คู่มือนี้เรียบเรียงและปรับรูปแบบสำหรับ Ruk-Com Cloud PaaS ภาพหน้าจออาจแตกต่างเล็กน้อยตามเวอร์ชันของระบบ
คลิกหรือแตะภาพหน้าจอเพื่อดูรายละเอียดขนาดจริง
วัตถุประสงค์
บทความนี้อธิบายการใช้งาน คลัสเตอร์ Kubernetes: การสร้าง Ingresses บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และทรัพยากรเป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
ทางเข้าคือ Kubernetes Cluster load balancer ที่จัดการการเข้าถึงบริการภายนอก (external access) ให้การยุติ SSL และโฮสติ้งเสมือนตามชื่อ มีการจัดการผ่านเซ็ตของกฎ (spec) ที่จับคู่กับคำขอที่เข้ามาทั้งหมด
เคล็ดลับ :
เมื่อเทียบกับบริการที่เปิดเผยผ่านโหนดพอร์ต, ingress เป็นตัวเลือกที่มีประสิทธิภาพมากกว่าแต่ก็ซับซ้อนกว่าด้วย จะมีประโยชน์ที่สุดเมื่อคุณต้องการเปิดเผยบริการหลายรายการภายใต้ IP address เดียวกัน นอกจากนี้ ingress ยังได้รับการจัดการโดยคอนโทรลเลอร์ซึ่งมีคุณสมบัติมากมายที่พร้อมใช้งาน (out-of-the-box) เช่น (SSL, auth, routing ฯลฯ )
แทรกซึมเข้ามาคลัสเตอร์ Kubernetesได้รับการจัดการโดยทราฟิกตัวควบคุมทางเข้าตามค่าเริ่มต้นด้วยHAProxyและNGINXตัวเลือกที่มีใน 1.15.5 ที่กำลังจะมาถึงรุ่นแพ็คเกจ. โดยจะเฝ้าดูวัตถุ แยกวิเคราะห์ข้อมูลจำเพาะ/คำอธิบายประกอบ และแปลเป็นกฎการเปลี่ยนเส้นทาง
Ingresses ในคลัสเตอร์ Kubernetesได้รับการจัดการโดยทราฟิกingress controller ตามค่าเริ่มต้นพร้อมด้วยตัวเลือกHAProxyและNGINXที่มีให้ใน 1.15.5รุ่นแพ็คเกจเฝ้าดูวัตถุ, แยกวิเคราะห์ข้อมูลจำเพาะ/คำอธิบายประกอบและแปลเป็นกฎการเปลี่ยนเส้นทาง
หมายเหตุ :
ไม่สามารถเปลี่ยน ingress controller ที่เลือกผ่านส่วนเสริม Kubernetes management หรือเครื่องมืออัตโนมัติอื่น ๆ หลังการติดตั้ง การดำเนินการยังสามารถทำได้ด้วยตนเอง โปรดติดต่อฝ่ายสนับสนุนหากต้องการความช่วยเหลือ
ingress spec คือ การรวมกันของกฎเส้นทางบริการ (path rule) แบ็คเอนด์และพอร์ต ตัวอย่างเช่นทางเข้าของคุณอาจมีลักษณะดังนี้
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 ซึ่งผูกไว้กับพอร์ต 8080 บนเส้นทางของโดเมนเริ่มต้น (default domain) ของ Kubernetes environment ที่มีคำต่อท้ายเป็น /myapp suffix (i.e. https://${envName}.${platformDomain.com}/myapp) สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่ากฎขาเข้า (ingress rules) (รวมถึงการกำหนด path และ subdomain-based routing) โปรดดูเอกสารอย่างเป็นทางการ