Kubernetes Cluster: Creating Ingresses

Ingress คือ Kubernetes Cluster load balancer ที่จัดการการเข้าถึงบริการภายนอก (external access) ให้การยุติ SSL และโฮสติ้งเสมือนตามชื่อ มีการจัดการผ่านเซ็ตของกฎ (spec) ที่จับคู่กับคำขอที่เข้ามาทั้งหมด

เคล็ดลับ :
เมื่อเทียบกับบริการที่เปิดเผยผ่าน NodePort, ingress เป็นตัวเลือกที่มีประสิทธิภาพมากกว่าแต่ก็ซับซ้อนกว่าด้วย จะมีประโยชน์ที่สุดเมื่อคุณต้องการเปิดเผยบริการหลายรายการภายใต้ IP address เดียวกัน นอกจากนี้ ingress ยังได้รับการจัดการโดยคอนโทรลเลอร์ซึ่งมีคุณสมบัติมากมายที่พร้อมใช้งาน (out-of-the-box) เช่น (SSL, auth, routing ฯลฯ )

Ingresses in Kubernetes Cluster are managed by Traefik ingress controller by default, with the HAProxy and NGINX options available in the upcoming 1.15.5 package version. It watches objects, parses specs/annotations, and translates them into redirect rules.

Ingresses ใน Kubernetes Cluster ได้รับการจัดการโดย Traefik ingress controller ตามค่าเริ่มต้นพร้อมด้วยตัวเลือก HAProxy และ NGINX ที่มีให้ใน 1.15.5 package version ทำการเฝ้าดูวัตถุ, แยกวิเคราะห์ข้อมูลจำเพาะ/คำอธิบายประกอบและแปลเป็นกฎการเปลี่ยนเส้นทาง

หมายเหตุ :
ไม่สามารถเปลี่ยน 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) โปรดดู official documentation