OpenShift 3 หรือ OpenShift Next Gen ใกล้ออกรุ่นออนไลน์ให้ได้ใช้งานกันแล้ว ทาง RedHat ได้เปิดให้นักพัฒนาได้ใช้รุ่น Developer Preview มาระยะหนึ่ง เพื่อให้นักพัฒนาได้ทดลองใช้งานและวางแผนเตรียมย้ายจาก OpenShift เดิมมาเป็น OpenShift 3 ความแตกต่างระหว่างของใหม่กับของเก่า แต่เดิมการทำ partitioning application ใช้ความสามารถของ cgroup จาก Kernel ในรุ่นใหม่เปลี่ยนมาใช้ Docker และ Kubernetes เรียกว่าเปลี่ยนจากหน้ามือเป็นหลังมือเลยทีเดียว

สำหรับการใช้งาน OpenShift ก็คล้ายๆ เดิมแต่มีเครื่องมือแบบ cli ใหม่ใช้งานง่ายกว่าเดิม สามารถเชื่อมโยงกับ Git repository ได้ สั่ง auto build จาก repository ได้ นักพัฒนามีหน้าที่เขียน App และทดสอบ App เท่านั้นที่เหลือ OpenShift จะจัดการให้ ไม่ต้องปวดหัวกับ Kubernetes Cluster, Storage มาดูวิธีการใช้งานกัน


Continue reading

Docker Compose ออกรุ่นใหม่และมีการเปลี่ยนแปลงรูปแบบของ docker compose file เป็นเวอร์ชั่นใหม่ ซึ่งรองรับ service, volume และ network ตามความสามารถใหม่ของ Docker 1.10 ด้วย file format แบบใหม่ทำให้เราสามารถกำหนดการตั้งค่าต่างๆ ใน docker compose file ได้มากขึ้น แต่การเปลี่ยนแปลงก็มีเช่นกัน



Continue reading

CenturyLink Lab มีเครื่องมือหลายตัวที่ใช้งานร่วมกับ Docker ซึ่งก็มีเครื่องมือเล็กๆ ชื่อ Docker Image Graph ที่ทำหน้าที่อ่านโครงสร้างของ Docker Image แล้วแสดงผลออกมาเป็นภาพกราฟิก ทำให้เราเข้าใจถึงความสัมพันธ์และการขึ้นต่อกันของ Image แต่ละตัว ทำให้เข้าใจโครงสร้างของ Image นั้นๆ ได้ง่ายมากขึ้น

การใช้งานก็ง่ายมากเพียงแค่สั่งผ่าน Docker ดังนี้่

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock centurylink/image-graph > docker_images.png

เราจะได้ผลลัพท์เป็นไฟล์ภาพ docker_images.png ดังนี้



Continue reading

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 และติดตั้งให้เรียบร้อย

Continue reading

ครั้งที่แล้วพาเล่น Load Balance บน Rancher แบบง่ายๆ ไปแล้ว ครั้งนี้ก็เลยมายกตัวอย่าง HA WordPress กันบ้าง WordPress เป็น CMS เก็บข้อมูลบน Storage 2 ส่วน คือ บน MySQL และบน File System หากต้องการทำ HA สำหรับ WordPress จะต้องกระจายโหลดจาก Load Balance ไปยัง WordPress และการเก็บข้อมูลจะต้องเก็บข้อมูลบน Storage เดียวกันโดยใช้ Distributed Storage เข้ามาช่วย และใช้ MySQL Cluster สำหรับเก็บข้อมูลด้วย เครื่องมือที่ใช้ได้แก่ Gluster,
Percona XtraDB Cluster และ WordPress มาลงมือกันเลย ให้คุณเพิ่ม Docker Host เข้าไปใน Rancher 3 Host ดังนี้


Continue reading

Load Balance Service เป็นบริการที่มีใน Rancher คุณสามารถสร้าง Web Application พร้อม Load Balance ได้ง่าย โดยไม่ต้องตั้งค่าให้ยุ่งยาก ไม่ต้องใช้ plugin เสริม ไม่ต้องติดตั้งอะไรเพิ่มเติม Load Balance Service มีให้ใช้งานในส่วน Stack มาลองสร้าง Load Balance ให้ Web Application เล็กๆ กันครับ อันดับแรกให้คุณเพิ่ม Docker Host เข้ามาใน Rancher ดังนี้

จากนั้นสร้าง App Stack ขึ้นมาใหม่

Continue reading

ครั้งที่แล้วพาเล่น 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 ทำงานแล้ว

Continue reading

RancherOS เป็นระบบปฏิบัติการ Linux ขนาดเล็กเพียง 20MB พัฒนามาเพื่อใช้งานกับ Cloud โดยเฉพาะ ผนวกความสามารถด้าน container เข้ามาด้วย สิ่งที่แตกต่างจากระบบปฏิบัติการ Linux ขนากเล็กเจ้าอื่นๆ อย่าง Atomic, CoreOS, Snappy คือมี Docker ทำงานอยู่ 2 ระดับคือ System Docker และ User Docker ซึ่ง PID 1 เป็น System Docker นอกจากระบบปฏิบัติการแล้วยังมีเครื่องมือช่วยจัดการ Docker Container ในชื่อ Rancher อีกด้วย

ครั้งนี้เรามาลองดูระบบปฏิบัติการ RancherOS กันก่อน RancherOS สามารถใช้งานได้บน Docker Machine, Vagrant, Boot จาก ISO, Bare metal หรือจะใช้งานบน Cloud Service เช่น Amazon Web Service และ Google Cloud Platform ได้เช่นกัน

Continue reading

หลังจากที่นำเสนอเนื้อหาเกี่ยวกับ Docker มาเกือบ 2 ปี ส่วนใหญ่จะแนะนำการใช้งาน Docker บนเครื่อง Linux มีอยู่บทความหนึ่งที่เขียนถึงการใช้งาน Docker บน OSX ผ่าน Kitematic ครั้งนี้ Docker ออกเครื่องมือมาใหม่ชื่อ Docker Toolbox ซึ่งเป็นชุดรวมเครื่องมือที่จำเป็นต้องใช้ ได้แก่ Docker Client, Docker Machine, Docker Compose, Docker Kitematic และ VirtualBox ทำให้นักพัฒนาที่ใช้ระบบปฏิบัติการ Windows และ Mac ทำงานได้สะดวกมากขึ้น

มาลองติดตั้งกัน ก่อนอื่นดาวน์โหลด Docker Toolbox มาก่อน จากนั้นก็สั่งติดตั้งได้เลย

Continue reading

CoreOS รุ่นใหม่เพิ่ม kubelet เข้ามาช่วยให้คุณสามารถสร้าง Kubernetes cluster ได้เร็วยิ่งขึ้น โดยปกติ kubelet จะทำหน้าที่เป็น agent คอยดูแล pod ที่ถูกสร้างขึ้น register node เข้าไปยัง Kubernetes cluster ส่ง event, สถานะของ pod และรายงาน resource utilization นอกจากจะทำงานใน Kubernetes cluster แล้วยังสามารถทำงานแบบ stanalone ได้อีกด้วย ดังนั้นเราสามารถใช้ kubelet สร้าง single node Kubernetes cluster พร้อมระบบ monitoring resource utilization อย่าง cAdvisor ได้

มาเริ่มกันเลย เราจะใช้ CoreOS เวอร์ชั่น 773.1.0 ขึ้นไป อันดับแรกมาตั้งค่า service ใน systemd ให้ kubelet กันก่อน

Continue reading