Rancher Compose เป็น Orchestration Tool คล้ายกับ Docker Compose แต่การทำงานจะเป็นการเชื่อมต่อกับ Racher ไม่ได้เชื่อมต่อกับ Swarm ดังนั้นการใช้งาน Rancher Compose จะต้องใช้คู่กับ Rancher ด้วย Rancher Compose จะใช้ไฟล์ config อยู่ 2 ไฟล์คือ docker-compose.yml สำหรับกำหนด stack ที่ต้องการ deploy และ rancher-compose.yml สำหรับกำหนดค่า Load Balance หรือการ Scale หากใช้ไฟล์ docker-compose.yml อย่างเดียว Rancher จะไปสร้าง config rancher-compose ให้ พร้อมกำหนดจำนวน Scale เท่ากับ 1 ไว้ ดังนั้นในแต่ละ Service สามารถสั่ง Scale ได้โดยอัตโนมัติ

ตัวอย่าง Jenkins CI จะเห็นภาพมากที่สุด เพราะโครงสร้างของ Jenkins ออกแบบมาให้ Scale ในส่วน Jenkins Slave ได้เรื่อยๆ ดังนั้นหากมีการเพิ่ม Host ของ Jenkins Slave เมื่อ Container เริ่มทำงานจะต้อง Link กลับมาที่ Jinkins Master เพื่อ config slave เพิ่ม เราจะใช้ image ชื่อ ibuildthecloud/jenkins-swarm และ ibuildthecloud/jenkins-swarm-slave กัน Rancher Compose สามารถใช้งานได้บน UI, API และ CLI ครั้งนี้มาลองใช้ CLI กันบ้าง ให้ดาวน์โหลด Rancher Compose CLI มาจากหน้า Stack และติดตั้งให้เรียบร้อย

wget https://releases.rancher.com/compose/beta/latest/rancher-compose-linux-amd64.tar.gz
cd rancher-compose-v0.4.0/
sudo mv rancher-compose /usr/local/bin/

กลับไปที่ Rancher สร้าง API Key ขึ้นมาใหม่ อย่าลืมจดค่า ACCESS_KEY และ SECRET_KEY มาด้วย

จากนั้นตั้งค่า Environment Variable สำหรับ RANCHER_URL, RANCHER_ACCESS_KEY, RANCHER_SECRET_KEY

export RANCHER_URL=http://54.255.189.48:8080/v1/projects/1a5
export RANCHER_ACCESS_KEY=4A2C4B0E32C7C6A2FB19
export RANCHER_SECRET_KEY=STcwFnDha8jdiSaQAqCk3sBRecDPUHUtYUwA7m8t

เพิ่ม Host พร้อมติด Label เป็น jenkins=master และ jenkins=slave

โดยเราจะกำหนดให้ scheduler สั่ง deploy Jenkins master ไปยังเครื่องที่ติด Label jenkins=master และ deploy Jenkins slave ไปยังเครื่องติด Label jenkins=slave และลิงค์ container ข้าม Host เพื่อ reconfig slave ให้ Jenkins master ด้วย เขียน docker-compose.yml ได้ดังนี้

จากนั้นสั่ง

rancher-compose up -d

กลับไปหน้า Stack เราจะพบ Stack Jenkins เพิ่มเข้ามาจะเริ่ม Deploy Service ต่างๆ ให้

ดูในหน้า Infrastructure

เข้าไปดูใน Jenkins จะพบว่ามี Slave เชื่อมต่อเข้ามาแล้ว

Comments are closed.