เรามีการติดตั้ง docker swarm บนเครื่อง aws ec2 ubuntu สี่เครื่อง
สองคนทำหน้าที่เป็นผู้จัดการ
ตอนนี้ แทนที่จะจัดการตัวเอง เราต้องการย้ายไปยังบริการที่มีการจัดการ เช่น aks/eks สำหรับ kubernetes
ฉันไม่พบสิ่งใดเลย ดังนั้นคิดที่จะย้ายภาระงานของเราไปยัง kubernetes
ในส่วนหนึ่งของสิ่งนั้น เรากำลังเรียกใช้คำสั่งบริการนักเทียบท่าสำหรับฐานข้อมูลต่างๆ ดังนั้นเมื่อใดก็ตามที่จำเป็นต้องมีฐานข้อมูลทดสอบ (postgres, oracle, mysql, ฯลฯ) เราจะเรียกใช้คำสั่งใน docker swarm เพื่อสร้างบริการ และเราได้รับพอร์ตแบบสุ่มที่เรา เชื่อมต่อโดยใช้ IP สาธารณะของผู้จัดการ
ตัวอย่าง:
สำหรับโพสต์เกรส:
บริการนักเทียบท่าสร้าง --name postgres_31 -p target=5432 -e POSTGRES_PASSWORD=mysecretpassword -e POSTGRES_USER=admin -e POSTGRES_DB=testdb -d postgres:9.6.18
ด้านบนจะสร้างพอร์ตสุ่มสำหรับ postgres สำหรับพอร์ต 5432
เช่นด้านล่างสร้าง 30048
ดังนั้น ผู้ใช้เชื่อมต่อกับ ip สาธารณะของโหนดผู้จัดการและพอร์ต 30048 ซึ่งจะเปลี่ยนเส้นทางไปยังพอร์ต 5432 ของฐานข้อมูล
บริการนักเทียบท่า ls
p45fazswicxc postgres_31 จำลองแบบ 1/1 postgres:13 *:30048->5432/tcp
ด้วยวิธีนี้ เราเคยสร้างหลายฐานข้อมูลของ postgres (หรือฐานข้อมูลอื่นๆ) บน swarm (เพื่อจุดประสงค์ในการทดสอบสำหรับทีม dev)
จะจำลองสภาพแวดล้อมนี้บน kubernetes ได้อย่างไร
ใน kubernetes ดูเหมือนว่าจะสร้าง IP สาธารณะแยกต่างหากสำหรับบริการประเภท load balancer สำหรับการปรับใช้แต่ละครั้ง แต่เราต้องการอันเดียว
ฉันคิดที่จะเก็บตัวโหลดบาลานซ์ Azure ไว้ภายนอกและเปลี่ยนเส้นทางทั้งหมด แต่การกำหนดค่าสำหรับ http เท่านั้น ฉันเดาว่าและสามารถใช้ได้กับพอร์ตเดียว ไม่ใช่พอร์ตสุ่มหลายพอร์ต โปรดแก้ไขหากฉันผิด