0Pricing
DevOps Bootcamp · บทเรียน

Ingress และการกำหนดเส้นทางภายนอก

เปิดให้บริการหลายบริการเข้าถึงจากภายนอกผ่านจุดเข้าเพียงจุดเดียว โดยใช้ทรัพยากร Ingress การกำหนดเส้นทางตามโฮสต์และเส้นทาง และตัวควบคุม Ingress

Ingress และการกำหนดเส้นทางภายนอก เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

เหนือกว่า NodePort และ LoadBalancer

Service สามารถเปิดให้เข้าถึงแอปได้ แต่การให้แต่ละแอปมี IP ภายนอกของตัวเองย่อมมีค่าใช้จ่ายสูงและจัดการได้ยุ่งยาก อินเกรส จึงเป็นจุดทางเข้า HTTP อัจฉริยะเพียงจุดเดียวที่กำหนดเส้นทางไปยังบริการจำนวนมากได้

อินเกรสคืออะไร

อินเกรส คือออบเจ็กต์ Kubernetes ที่อธิบายกฎการกำหนดเส้นทาง HTTP/HTTPS ว่าโฮสต์หรือเส้นทาง URL ใดจะเชื่อมไปยังบริการใด

คุณต้องมีคอนโทรลเลอร์

ออบเจ็กต์อินเกรสเป็นเพียงกฎเท่านั้น คอนโทรลเลอร์อินเกรส (nginx, Traefik, HAProxy) เป็นผู้เฝ้าดูกฎเหล่านั้นและดำเนินการกำหนดเส้นทาง หากไม่มีคอนโทรลเลอร์ก็ไม่มีผลใด ๆ

kubectl get pods -n ingress-nginx

อินเกรสพื้นฐาน

อินเกรสนี้ส่งทราฟฟิกทั้งหมดไปยังบริการแบ็กเอนด์เดียวที่พอร์ต 80

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: web-ingress
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: web
            port:
              number: 80

การกำหนดเส้นทางตามโฮสต์

เพิ่ม host เพื่อกำหนดเส้นทางตามชื่อโดเมน เช่น api.example.com ไปยังบริการหนึ่ง และ shop.example.com ไปยังอีกบริการหนึ่ง โดยใช้ IP เดียวกัน

rules:
- host: api.example.com
  http:
    paths:
    - path: /
      pathType: Prefix
      backend:
        service:
          name: api
          port:
            number: 8080

การกำหนดเส้นทางตามเส้นทาง

หรือกำหนดเส้นทางตามเส้นทาง URL ภายใต้โฮสต์เดียวกันก็ได้: /api ไปยังบริการ API และ / ไปยังส่วนหน้าเว็บ

paths:
- path: /api
  pathType: Prefix
  backend:
    service:
      name: api
      port:
        number: 8080
- path: /
  pathType: Prefix
  backend:
    service:
      name: web
      port:
        number: 80

การสิ้นสุดการเข้ารหัส TLS

อินเกรสสามารถสิ้นสุดการเชื่อมต่อ HTTPS โดยใช้ข้อมูลลับ TLS ทำให้บริการของคุณได้รับ HTTP ปกติ ขณะที่ผู้ใช้ยังได้รับการเข้ารหัส

spec:
  tls:
  - hosts:
    - shop.example.com
    secretName: shop-tls

คำอธิบายประกอบปรับการทำงาน

คำอธิบายประกอบ เฉพาะคอนโทรลเลอร์ใช้กำหนดค่าการเขียนเส้นทางใหม่ ระยะหมดเวลา การจำกัดอัตรา และอื่น ๆ โดยจัดเก็บอยู่ในข้อมูลเมตาของอินเกรส

metadata:
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /

IngressClass

เมื่อมีคอนโทรลเลอร์หลายตัว ingressClassName จะบอก Kubernetes ว่าควรให้ตัวใดจัดการอินเกรสนี้

spec:
  ingressClassName: nginx

การตรวจสอบอินเกรส

ตรวจสอบกฎและที่อยู่ที่ได้รับมอบหมายด้วย kubectl get ingress และใช้ describe เพื่อตรวจสอบเหตุการณ์

kubectl describe ingress web-ingress

ทางเลือกสมัยใหม่: Gateway API

Kubernetes กำลังพัฒนาไปสู่ Gateway API ซึ่งเป็นตัวสืบทอดที่แสดงรายละเอียดได้มากกว่าอินเกรส แต่อินเกรสยังคงใช้งานอย่างแพร่หลายและเป็นจุดเริ่มต้นที่เหมาะสม

ตรวจสอบความเข้าใจ

เหตุใดจึงต้องมีคอนโทรลเลอร์อินเกรส

สรุปทบทวน

ตอนนี้คุณสามารถเปิดให้เข้าถึงแอปได้อย่างเป็นระเบียบแล้ว:

  • อินเกรส กำหนดกฎการกำหนดเส้นทาง HTTP ส่วน คอนโทรลเลอร์อินเกรส เป็นผู้บังคับใช้กฎ
  • กำหนดเส้นทางตาม โฮสต์ หรือ เส้นทาง ผ่านจุดทางเข้าเดียว
  • สิ้นสุดการเข้ารหัส TLS และปรับการทำงานด้วยคำอธิบายประกอบ
  • ingressClassName ใช้เลือกคอนโทรลเลอร์

IP เดียว บริการมากมาย และการกำหนดเส้นทางอย่างชาญฉลาด

คำถามที่พบบ่อย

บทเรียน “Ingress และการกำหนดเส้นทางภายนอก” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Ingress และการกำหนดเส้นทางภายนอก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Ingress และการกำหนดเส้นทางภายนอก”

เปิดให้บริการหลายบริการเข้าถึงจากภายนอกผ่านจุดเข้าเพียงจุดเดียว โดยใช้ทรัพยากร Ingress การกำหนดเส้นทางตามโฮสต์และเส้นทาง และตัวควบคุม Ingress คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “Ingress และการกำหนดเส้นทางภายนอก” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม

ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Deployment สำหรับแอปแบบไร้สถานะ
  2. Service สำหรับการเข้าถึงเครือข่าย
  3. ConfigMaps และ Secrets
  4. Ingress และการกำหนดเส้นทางภายนอก
← กลับไปที่ DevOps Bootcamp