5

Tôi đang chạy Docker Compose (v2) và có dịch vụ nút (website) và api dựa trên python được triển khai với nginx đang ngồi trước chúng.Tự động gắn thêm vùng chứa docker vào cấu hình ngược dòng của cân bằng tải nginx

Một điều tôi muốn làm là có thể mở rộng các dịch vụ bằng cách thêm nhiều vùng chứa hơn. Nếu tôi biết trước bao nhiêu container tôi sẽ có, tôi có thể mã hóa cấu hình ngược dòng nginx với các tham chiếu đến các IP của các container mà docker có sẵn. Tuy nhiên, vấn đề là tôi muốn cấu hình nginx thượng nguồn trở nên năng động, ví dụ: nếu tôi thêm một vùng chứa Docker khác, nó chỉ đơn giản là thêm vào vị trí của vùng chứa vào danh sách ngược của các IP trong khối thượng nguồn.

Ý tưởng của tôi là tạo tập lệnh tự động thêm máy chủ ngược dòng bằng cách sử dụng biến env khi vùng chứa thay đổi nhưng tôi không chắc nên bắt đầu từ đâu và không thể tìm thấy ví dụ hay.

Trả lời

2

Có một vài cách để đạt được điều này. Những gì bạn đang đề cập đến thường được gọi là khám phá dịch vụ và có nhiều hình thức. Tôi sẽ mô tả hai trong số họ mà tôi đã sử dụng trước đây.

Đầu tiên và đơn giản nhất (hoạt động tốt cho các máy chủ đơn lẻ hoặc chỉ phát hiện vùng chứa cục bộ trên một máy chủ) là proxy cục bộ sử dụng socket hoặc API Docker. https://github.com/jwilder/nginx-proxy là một trong những cái phổ biến và nên hoạt động tốt để tạo mẫu các dịch vụ có thể mở rộng trong Soạn thư.

Một cách khác (nhiều máy chủ thân thiện hơn nhưng phức tạp hơn) sẽ đăng ký dịch vụ trong sổ đăng ký (chẳng hạn như etcd hoặc Consul) và sau đó tự động viết cấu hình. Để thực hiện việc này, bạn có thể sử dụng hệ thống đăng ký (chẳng hạn như https://github.com/gliderlabs/registrator) để đăng ký các container và các cảng của họ. Sau đó, proxy hoặc ứng dụng của bạn có thể tiêu thụ tệp cấu hình được viết bằng cách sử dụng hệ thống mẫu như https://github.com/kelseyhightower/confd.

+0

điều này có vẻ chính xác những gì tôi đang tìm kiếm, cảm ơn! – ExoticChimp

Các vấn đề liên quan