ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บน Platform

RUK-COM PAAS / KUBERNETES HOSTING

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) โปรดดูเอกสารอย่างเป็นทางการ