ครั้งที่แล้วพาเล่น RancherOS และได้แนะนำ Rancher ไปแล้วนิดหน่อย ครั้งนี้เราจะมาลองเล่น Rancher กันให้มากขึ้น Rancher เป็นเครื่องมือจัดการ Docker Container รองรับการเพิ่ม Docker Host ในรูปแบบ Bootstrap บน Cloud Platform ต่างๆ เช่น AWS, Digital Ocean, Rackspace, Azure เป็นต้น นอกจากนี้ยังสามารถใช้งานร่วมกับ Docker Host ปกติได้ เช่นกัน
การติดตั้ง Rancher ทำได้หลายวิธี แต่วิธีที่ง่ายและสะดวกที่สุดคือติดตั้งโดยใช้ Docker ดังนี้
docker run -d --restart=always -p 8080:8080 rancher/server
เมื่อติดตั้งเสร็จ ก็ใช้งานได้เลย เปิดเบราเซอร์ไปที่ http://your-host:8080 คุณจะพบว่า Rancher ทำงานแล้ว

กดเพิ่ม Host กันก่อน ตัว Rancher จะให้คุณตั้งค่า Rancher API URL ก่อน
จากนั้นเพิ่ม Host ได้เลย จะเห็นได้ว่า Rancher สามารถเชื่อมต่อกับ Cloud Provider ได้หลายค่าย หากคุณต้องการเพิ่ม Docker Host ของคุณเองเลือก Custom
ผมใช้ AWS อยู่ มาเชื่อมต่อกับ AWS กันดีกว่า กรอก Access Key และ Secret Key
ตั้งค่าขนาดของ Rancher Host ที่ต้องการ
กด Create แล้วรอ สักพัก
เราก็เพิ่ม Rancher Host เสร็จเรียบร้อย
ลองเข้าไปดูในรายละเอียดจะพบว่า Rancher Agent ส่งข้อมูลการใช้ Resource ต่างๆ Host มาให้แล้ว
มาลองสร้าง Container ง่ายๆ อย่าง nginx ทำงานบน port 8800 กรอกรายละเอียดแล้วกด Create ได้เลย
รอสักพัก Container ที่สั่งสร้างก็จะทำงาน
ลองดูรายละเอียดใน Container
ลองเปิดเว็บดูว่า Container ทำงานแล้วจริงๆ
มาลองอย่างอื่นบ้าง ถ้าเราต้องการทำ orchestration โดยปกติเราจะทำงานผ่าน Docker Compose หากคุณใช้ Rancher หรือ RancherOS คุณจำเป็นต้องใช้ Rancher Compose โดยไฟล์ config จะมี 2 ส่วนคือ docker-compose.yml และ rancher-compose.yml แต่ Racher รองรับ docker-compose.yml แบบเดิมอยู่ ดังนี้เรามาลอง deploy wordpress ง่ายๆ กัน ให้สร้างไฟล์ docker-compose.yml ดังนี้
wordpress:
image: wordpress
links:
- db:mysql
ports:
- 8080:80
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: example
view rawdocker-compose.yml hosted with ❤ by GitHub
จากนั้นสร้าง Stack เพิ่ม
กรอกข้อมูล หรือ Browse ไฟล์ docker-compose.yml ของเราลงไป
จากนั้นกด Create ได้เลย Rancher จะสร้าง Stack App ให้เราก่อน
จากนั้นให้เราสั่ง Start
มาดูมุมมองแบบ Graph เราจะได้แบบนี้
ดูในส่วน Config เราจะพบว่า Rancher เติมในส่วน rancher-compose.yml มาให้เรียบร้อย
ลองเข้าไปดูในรายละเอียดของ Container เราจะพบว่ามีการตั้งค่า label พร้อมผูก service ต่างๆ ให้เรียบร้อย
ลองเข้าเว็บดูเราจะพบว่า WordPress Deploy เรียบร้อยแล้ว
ครั้งหน้าเราจะมาลองเล่น Service ต่างๆ ใน Rancher กันครับ