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
There are 63 posts tagged Docker (this is page 1 of 7).
มาเล่น Docker Compose กับ Compose file V2 กัน
Docker Compose ออกรุ่นใหม่และมีการเปลี่ยนแปลงรูปแบบของ docker compose file เป็นเวอร์ชั่นใหม่ ซึ่งรองรับ service, volume และ network ตามความสามารถใหม่ของ Docker 1.10 ด้วย file format แบบใหม่ทำให้เราสามารถกำหนดการตั้งค่าต่างๆ ใน docker compose file ได้มากขึ้น แต่การเปลี่ยนแปลงก็มีเช่นกัน
Continue reading
มาดูส่วนประกอบของ Docker Image ด้วย Image Layers กัน
Image Layers เป็นบริการของ CenturyLink ช่วยให้คุณสามารถดูโครงสร้างของ Docker Image ได้ง่ายๆ จาก Docker Hub หรือการอัพโหลด Image ขึ้นไปตรวจสอบ การแสดงผลจะอยู่ในรูปแบบของ Graph แสดงข้อมูล Image แต่ละ Layer ขนาดที่ใช้ในแต่ละ Layer ด้วย นอกจากนี้ยังแสดงคำสั่งต่างๆ ใน Dockerfile อีกด้วย วิธีการใช้งานก็ง่ายมากๆ เข้าไปที่เว็บไซต์ imagelayers.io
จากนั้นกำหนด Docker Image ที่ตรงการดู ตัวอย่างผมอยากดู Image ชื่อ ibuildthecloud/jenkins-swarm
Continue reading
มาดูโครงสร้าง Docker Image ด้วย Docker Image Graph กัน
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 ดังนี้
หากเป็นภาพดูยากไป อยากดดูผ่าน browser ก็ใช้คำสั่งดังนี้
docker run -d -v /var/run/docker.sock:/var/run/docker.sock -e PORT=3000 -p 3000:3000 centurylink/image-graph
เปิดเว็บ browser เข้าไปดูที่ port 3000 เราจะผลลัพท์ดังนี้
ครั้งหน้าเราจะมาลองเล่น ImageLayers ที่เป็นบริการของ CenturyLink Lab กัน
มาเล่น Rancher Compose กัน
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
มาเล่น HA WordPress บน Rancher กัน
ครั้งที่แล้วพาเล่น 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 กัน
Load Balance Service เป็นบริการที่มีใน Rancher คุณสามารถสร้าง Web Application พร้อม Load Balance ได้ง่าย โดยไม่ต้องตั้งค่าให้ยุ่งยาก ไม่ต้องใช้ plugin เสริม ไม่ต้องติดตั้งอะไรเพิ่มเติม Load Balance Service มีให้ใช้งานในส่วน Stack มาลองสร้าง Load Balance ให้ Web Application เล็กๆ กันครับ อันดับแรกให้คุณเพิ่ม Docker Host เข้ามาใน Rancher ดังนี้
จากนั้นสร้าง App Stack ขึ้นมาใหม่
Continue reading
มาใช้ Rancher จัดการ Docker Container กัน
ครั้งที่แล้วพาเล่น 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 กัน
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 ง่ายๆ กับ Docker Toolbox
หลังจากที่นำเสนอเนื้อหาเกี่ยวกับ 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