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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- Deployment สำหรับแอปแบบไร้สถานะ
- Service สำหรับการเข้าถึงเครือข่าย
- ConfigMaps และ Secrets
- Ingress และการกำหนดเส้นทางภายนอก