Ingress: Đối tượng Ingress + Bộ điều khiển Ingress
Đối tượng xâm nhập:
Giống như Đối tượng dịch vụ, ngoại trừ nó không tự làm bất cứ điều gì. Đối tượng Ingress chỉ mô tả một cách để định tuyến lưu lượng lớp 7 vào cụm của bạn, bằng cách chỉ định những thứ như đường dẫn yêu cầu, miền yêu cầu và dịch vụ kubernetes đích, trong khi đối tượng dịch vụ thực sự tạo ra các dịch vụ
Bộ điều khiển Ingress:
Một dịch vụ:
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
Ví dụ: Bộ điều khiển Ingress Nginx, có thể sử dụng một dịch vụ để nghe trên cổng 80 và 443 và sau đó đọc Đối tượng Ingress mới và phân tích chúng vào các phần máy chủ mới {} mà nó tự động đặt vào nginx.conf
LoadBalancer: Nhà cung cấp cân bằng tải bên ngoài + Loại dịch vụ
Nhà cung cấp cân bằng tải bên ngoài:
Các nhà cung cấp cân bằng tải bên ngoài thường được cấu hình trong các đám mây như AWS và GKE và cung cấp một cách để gán IP bên ngoài thông qua việc tạo các bộ cân bằng tải bên ngoài. Chức năng này có thể được sử dụng bằng cách chỉ định một dịch vụ dưới dạng "LoadBalancer".
Loại dịch vụ:
Khi loại dịch vụ được đặt thành LoadBalancer, Kubernetes cố gắng tạo và sau đó lập trình một bộ cân bằng tải bên ngoài với các mục cho các nhóm Kubernetes, từ đó gán cho chúng các IP bên ngoài.
Bộ điều khiển dịch vụ Kubernetes tự động hóa việc tạo bộ cân bằng tải bên ngoài, kiểm tra sức khỏe (nếu cần), quy tắc tường lửa (nếu cần) và truy xuất IP bên ngoài của LoadBalancer mới được tạo hoặc được cấu hình được cung cấp bởi nhà cung cấp đám mây và đưa nó vào đối tượng phục vụ.
Các mối quan hệ:
Dịch vụ điều khiển Ingress thường được cung cấp dưới dạng LoadBalancer, do đó các yêu cầu http và https có thể được ủy quyền / định tuyến đến các dịch vụ nội bộ cụ thể thông qua một ip bên ngoài.
Tuy nhiên, LoadBalancer không thực sự cần thiết cho việc này. Vì, thông qua việc sử dụng hostNetwork hoặc hostPort, về mặt kỹ thuật bạn có thể liên kết một cổng trên máy chủ với một dịch vụ (cho phép bạn truy cập nó thông qua ip: port bên ngoài của máy chủ). Mặc dù chính thức nhưng điều này không được khuyến khích vì nó sử dụng hết các cổng trên nút thực tế.
Tài liệu tham khảo:
https://kubernetes.io/docs/con accept / configuration / review / # service
https://kubernetes.io/docs/t Nhiệm/access-application-cluster/create-external-load-balancer/
https://kubernetes.io/docs/t Nhiệm/access-application-cluster/create-external-load-balancer/#external-load-balancer-providers
https://kubernetes.io/docs/con accept / service-networking / forum /
Tôi nhận được sự khác biệt giữa bộ điều khiển xâm nhập và bộ điều khiển xâm nhập và vai trò tương ứng của chúng. Trong thực tế, bộ cân bằng tải cũng chịu trách nhiệm hướng lưu lượng truy cập đến các nhóm kubernetes của tôi thông qua một bộ quy tắc được xác định. Bạn có thể vui lòng làm sáng tỏ hơn về cách điều khiển xâm nhập khác với cân bằng tải về khía cạnh đó? Có lẽ một ví dụ trong đó cả cân bằng tải và tải được sử dụng sẽ giúp ích.
– Huỳnh Thạch Thảo 08:54:46 18/07/2017Bộ điều khiển xâm nhập không phải là loại kubernetes chính thức, nó chỉ là một triển khai hình ảnh LB (nginx chỉ là một ví dụ) có thể diễn giải các quy tắc xâm nhập. Tôi tin rằng hầu hết mọi người đều cho rằng bộ điều khiển xâm nhập cũng là một LB bên trong sống bên trong cụm. Tôi thực sự đã không cố gắng tạo ra một bộ cân bằng tải bên ngoài để giải thích các quy tắc xâm nhập. Tôi tưởng tượng nó có thể, nhưng tôi có thể sai hoàn toàn :)
– Lý Hoài Đoan 14:20:36 18/07/2017Trong ứng dụng hiện tại của tôi, tôi đã triển khai triển khai nginx dưới dạng dịch vụ LoadBalancer trên GKE và thực hiện ủy quyền ngược từ nginx cho tất cả các dịch vụ khác đang chạy trong cụm. Tôi có nên sử dụng xâm nhập thay vì cách tiếp cận trên?
– Biển Ngọc 21:08:07 10/08/2017hi @rigal trong proxy nginx của bạn làm thế nào để các quy tắc proxy trông như thế nào? Họ có được giải quyết bằng kube-dns không?
– Lý Anh Thư 08:09:49 23/11/2017@arunkjn vâng. Các quy tắc trông như thế này: location / api / url / {proxy_pass tên dịch vụ: 80 / api / url ; }
– Dương Diễm Kiều 09:07:10 24/11/2017