Cách xác định Ingress trong GKE, với vùng chứa Netflix của Spring Cloud
Tôi có một kiến trúc microservice, xây dựng trên Spring Cloud Netflix:
- business-owner-service trỏ đến một ứng dụng Spring Boot chạy trên cổng 8763. Chuyển tiếp cổng đã hoàn tất, business-owner-service: 80 chuyển hướng đến cổng 8763.
- dịch vụ khách hàng trỏ đến ứng dụng Spring Boot chạy trên cổng 8766. dịch vụ khách hàng: 80 -> 8766
Kiến trúc chạy chính xác nếu tôi gọi nó qua cổng Spring Cloud Zuul nhưng tôi muốn thiết lập Ingress.
Cấu hình chính xác của tôi như sau:
xâm nhập
cấu hình đường dẫn xâm nhập
Vấn đề là kẻ xâm nhập có tất cả các dịch vụ phụ trợ không lành mạnh và tôi không biết mình đang làm gì sai. Tôi phải làm gì để có một Ingress hoạt động?
Chỉnh sửa: Theo nhận xét, tôi đã cố gắng xác định readinessProbe, cho nhóm dịch vụ khách hàng, như sau:
Điều này không hoạt động và khi tôi cố gắng kiểm tra lại cấu hình đã cập nhật, readinessProbe không hiển thị. Tôi nghĩ rằng đây là một lỗi, nhưng tôi không chắc chắn làm thế nào để kiểm tra xem đầu dò đã được cập nhật hay chưa.
Ngoài ra, bộ truyền động / sức khỏe GET đang chạy qua cổng Zuul:
Trả lời
Điều cuối cùng trở thành giải pháp trong trường hợp của tôi là cấu hình kiểm tra sức khỏe, không phải readinessProbe. Tôi đã cập nhật kiểm tra tình trạng tự động được tạo cho các dịch vụ phụ trợ xâm nhập trỏ tới / actuator / health. Điều này đã hoạt động
Bộ điều khiển xâm nhập GKE thực hiện kiểm tra tình trạng với đầu dò mức độ sẵn sàng được xác định trong triển khai nhóm. Thêm một đầu dò sẵn sàng như bên dưới bằng cách sử dụng bộ truyền động khởi động lò xo
spec:
containers:
- name: name
readinessProbe:
httpGet:
port: 8080
path: /actuator/health
initialDelaySeconds: 10