Ingress: Ingress Object + Ingress Controller
วัตถุที่อยู่:
เช่นเดียวกับ Service Object ยกเว้นว่ามันจะไม่ทำอะไรด้วยตัวเอง Ingress Object อธิบายวิธีการส่งทราฟฟิกของเลเยอร์ 7 ในคลัสเตอร์ของคุณโดยการระบุสิ่งต่าง ๆ เช่นเส้นทางการร้องขอโดเมนคำขอและบริการ kubernetes เป้าหมายในขณะที่วัตถุบริการสร้างบริการจริง ๆ
ตัวควบคุม Ingress:
บริการที่:
1. listens on specific ports (usually 80 and 443) for web traffic
2. Listens for the creation, modification, or deletion of Ingress Objects
3. Creates internal L7 routing rules based on these Ingress Objects
ตัวอย่างเช่น Nginx Ingress Controller สามารถใช้บริการเพื่อฟังพอร์ต 80 และ 443 จากนั้นอ่าน Ingress Objects ใหม่และแยกวิเคราะห์ลงในเซิร์ฟเวอร์ใหม่ {} ส่วนซึ่งมันวางแบบไดนามิกเป็น nginx.conf
LoadBalancer: ผู้ให้บริการตัวโหลดบาลานซ์ภายนอก + ประเภทบริการ
ผู้ให้บริการโหลดบาลานซ์ภายนอก:
ผู้ให้บริการโหลดบาลานซ์ภายนอกมักจะกำหนดค่าในระบบคลาวด์เช่น AWS และ GKE และให้วิธีการกำหนด IP ภายนอกผ่านการสร้างโหลดบาลานซ์ภายนอก ฟังก์ชันนี้สามารถใช้งานได้โดยการกำหนดบริการเป็นประเภท "LoadBalancer"
ประเภทบริการ:
เมื่อชนิดของบริการถูกตั้งค่าเป็น LoadBalancer, Kubernetes จะพยายามสร้างและตั้งโปรแกรม load balancer ภายนอกพร้อมรายการสำหรับฝัก Kubernetes ดังนั้นจึงกำหนด IP ภายนอกเหล่านั้น
ตัวควบคุมบริการ Kubernetes ทำการสร้าง load balancer ภายนอกอัตโนมัติตรวจสอบสุขภาพ (ถ้าจำเป็น) กฎไฟร์วอลล์ (ถ้าจำเป็น) และดึง IP ภายนอกของ loadBalancer ที่สร้างขึ้นใหม่หรือกำหนดค่าซึ่งได้รับการจัดสรรโดยผู้ให้บริการคลาวด์ วัตถุบริการ
ความสัมพันธ์:
Ingress Controller Services มักจะได้รับการจัดเตรียมเป็นประเภท LoadBalancer ดังนั้นคำขอ http และ https สามารถพร็อกซี / ส่งไปยังบริการภายในที่เฉพาะเจาะจงผ่าน ip ภายนอก
อย่างไรก็ตาม LoadBalancer ไม่จำเป็นสำหรับสิ่งนี้อย่างเคร่งครัด ตั้งแต่ผ่านการใช้ hostNetwork หรือ hostPort คุณสามารถผูกพอร์ตบนโฮสต์กับบริการ (อนุญาตให้คุณเยี่ยมชมผ่านโฮสต์ภายนอก ip: พอร์ต) แม้ว่าจะไม่แนะนำอย่างเป็นทางการเนื่องจากมันใช้พอร์ตมากขึ้นในโหนดจริง
อ้างอิง:
https://kubernetes.io/docs/concepts/configuration/overview/#services
https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/
https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#external-load-balancer-providers
https://kubernetes.io/docs/concepts/services-networking/ingress/