Chúng tôi có một thiết lập docker swarm trên bốn máy aws ec2 ubuntu.
Hai trong số họ đóng vai trò là người quản lý.
Bây giờ, thay vì tự quản lý, chúng tôi muốn chuyển sang một dịch vụ được quản lý như aks/eks cho kubernetes.
Tôi không thể tìm thấy bất kỳ thứ gì cho đến nay, vì vậy tôi nghĩ sẽ chuyển khối lượng công việc của chúng tôi sang kubernetes.
Là một phần trong đó, chúng tôi đang chạy lệnh dịch vụ docker cho các cơ sở dữ liệu khác nhau để bất cứ khi nào cần có cơ sở dữ liệu thử nghiệm (postgres, oracle, mysql, v.v.), chúng tôi sẽ chạy một lệnh trong docker swarm để tạo một dịch vụ và chúng tôi nhận được một cổng ngẫu nhiên mà chúng tôi kết nối bằng ip công khai của người quản lý.
Ví dụ:
cho postgres:
dịch vụ docker tạo --name postgres_31 -p target=5432 -e POSTGRES_PASSWORD=mysecretpassword -e POSTGRES_USER=admin -e POSTGRES_DB=testdb -d postgres:9.6.18
Ở trên sẽ tạo một cổng ngẫu nhiên cho postgres cho cổng 5432
như bên dưới nó tạo ra 30048
Vì vậy, người dùng kết nối với ip công khai của nút quản lý và cổng 30048 sẽ chuyển hướng đến cổng 5432 của cơ sở dữ liệu.
dịch vụ docker ls
p45fazswicxc postgres_31 được sao chép 1/1 postgres:13 *:30048->5432/tcp
Bằng cách này, chúng tôi đã từng tạo nhiều cơ sở dữ liệu của postgres (hoặc cơ sở dữ liệu khác) trên swarm (nhằm mục đích thử nghiệm cho nhóm nhà phát triển).
Làm cách nào để sao chép môi trường này trên kubernetes?
Trong kubernetes, có vẻ như nó tạo IP công cộng riêng cho loại dịch vụ cân bằng tải cho mỗi lần triển khai, nhưng chúng tôi cần một dịch vụ duy nhất.
Tôi đã nghĩ đến việc giữ một bộ cân bằng tải Azure ở bên ngoài và chuyển hướng tất cả, nhưng tôi đoán cấu hình chỉ dành cho http và chỉ có thể dành cho một cổng không có nhiều cổng ngẫu nhiên, hãy sửa cho tôi nếu tôi sai.