Tag: container

  • วิธีการติดตั้ง Rancher ใน OS Ubuntu 18.04

    วิธีการติดตั้ง Rancher ใน OS Ubuntu 18.04

    Rancher คืออะไร ?

    Rancher คือ Complete container management platform หรือ ซอฟต์แวร์ที่ใช้ในการจัดการ Kubernestes ภายใน Cluster โดยความพิเศษของตัว Rancher นอกจากจะสามารถรอบรับระบบ Operating system และ Hypervisor ได้หลากหลายแล้ว ยังสามารถจัดการ Cluster ได้หลาย ๆ Cluster ผ่าน WebUI ได้อย่างง่ายดายโดยที่ไม่ต้องใช้ Command line 

    สนใจสมัครใช้บริการได้ที่ : สมัครใช้บริการ OpenLandscape Cloud


    บทความนี้มีหัวข้ออะไรบ้าง

    ข้อมูลพื้นฐานก่อนการติดตั้ง

    วิธีการติดตั้ง Rancher

    วิธีการตั้งค่า Rancher ผ่านหน้า Web Browser 

    วิธีการสร้าง Cluster บน Rancher

    วิธีการสร้างเครื่อง Instance สำหรับใช้เป็น Node ของ Kubernetes

    วิธีการกำหนด Role และเชื่อมต่อแต่ละ Node ของ Kubernetes เข้าไปยัง Cluster


    ข้อมูลพื้นฐานก่อนการติดตั้ง

    1.1.ส่วนประกอบ Environment ภายใน Cluster Rancher

    • Rancher-server  คือเครื่องที่ใช้ในการจัดการ Cluster Kubernetes สำหรับ Rancher
    • K8s-master        คือเครื่อง Master Node ของ Kubernetes ใช้สำหรับ Control และเก็บ etcd ของ Cluster kubernetes นั้น ๆ
    • K8s-worker1     คือเครื่อง Work Node ของ Kubernetes สำหรับ Run application ที่ทำการสร้างใน Cluster Kubernetes นั้น ๆ

    หมายเหตุ : สำหรับ Security group ในส่วนของ Port ที่ต้องเปิดจะมีรายการดังนี้ 80, 443, 6443, 2379

    1.2.ความต้องการของระบบ Rancher และ Kubernetes Cluster

    Requirements VM ของ rancher 

    Deployment SizeClustersNodesCPUsRAMs
    Small (Package D)Up to 3Up to 4024 GB
    Medium (Package E)Up to 12Up to 18048 GB

    Requirements VM ของ Kubernetes master node

    Deployment SizeCPUsRAMs
    POC Size(Package C)22 GB
    Production Size(Package E)48 GB

    Requirements VM ของ Kubernetes worker node

    Deployment SizeCPUsRAMs
    POC Size(Package C)22 GB
    Production Size(Package E)48 GB

    Requirements VM ของ Kubernetes All in one

    Deployment SizeCPUsRAMs
    minimum(Package E)48 GB
    Recommend(Package G)816 GB

    *** ในส่วนนี้ไม่แนะนำสำหรับใช้งานจริง เพราะอาจจะทำให้ App แย่งทรัพยากรกันได้


    วิธีการติดตั้ง Rancher

    1.อันดับแรกให้คุณทำการสร้าง Instance สำหรับใช้ในการติดตั้ง Rancher 

    [ตัวอย่างการเลือก Spec ของ Instance]

    • OS: Ubuntu 18.04
    • Package D
    • Networks Private: Enable
    • External IP: Yes
    • Instance Name: rancher-server
    วิธีการติดตั้ง Rancher

    2.เมื่อทำการสร้าง Instance แล้ว ให้ทำการ Update และ Upgrade ให้เรียบร้อย จากนั้นทำการติดตั้ง Docker ภายในเครื่อง Rancher โดยใช้คำสั่งดังนี้

    2.1.คำสั่ง Update

     # apt-get update

    2.2.คำสั่ง Upgrade

    # apt-get upgrade -y

    2.3.คำสั่งติดตั้ง Docker

    # curl https://releases.rancher.com/install-docker/19.03.sh | sh

    # usermod -aG docker root

    3.ต่อมาให้ทำการติดตั้ง Rancher โดยสามารถแบบได้เป็น 2 กรณีดังนี้

    3.1.คำสั่งติดตั้ง Rancher ในกรณีที่ไม่ต้องการจด Domain 

    # docker run -d –restart=unless-stopped –name rancher -p 80:80 -p 443:443 rancher/rancher:v2.4.8

    3.2.คำสั่งติดตั้ง Rancher  กรณีที่ต้องการใช้ domain

    # docker run -d –restart=unless-stopped –name rancher \

      -p 80:80 -p 443:443 \

      -v /opt/rancher:/var/lib/rancher \

      -v /var/log/rancher/auditlog:/var/log/auditlog \

      -v <ทำการใส่ path ของ cert ที่จด domain>:/etc/rancher/ssl/cert.pem \

      -v <ทำการใส่ path ของ private-key ของ domain>:/etc/rancher/ssl/key.pem \

      -v /etc/localtime:/etc/localtime:ro \

      -e AUDIT_LEVEL=1 \

      rancher/rancher:v2.4.8 \

      –no-cacerts

    *** คุณสามารถดูวิธีการจด Domain ได้ที่ : https://blog.openlandscape.cloud/domain-name-registration

    ติดตั้ง Docker ภายในเครื่อง Rancher

    หลังจากใช้คำสั่ง Docker จะทำการดึง Image Rancher ออกมา เพื่อทำการสร้าง Container Docker


    วิธีการตั้งค่า Rancher ผ่านหน้า Web Browser 

    1.หลังจากดำเนินการติดตั้ง Rancher เรียบร้อยแล้ว ให้เข้าไปที่ https://<domain || ippublic> เพื่อทำการตั้งค่า Rancher ผ่านหน้า Web Browser

    1.1.ทำการตั้ง Password สำหรับเข้าหน้า Dashboard ของ Rancher

    1.2.ทำเครื่องหมายถูกในช่อง “I agree” และกดที่ปุ่ม “Continue”

    วิธีการตั้งค่า Rancher ผ่านหน้า Web Browser

    1.3.ทำการตรวจสอบ Url ของ Rancher อีกครั้ง

    Url ของ Rancher

    วิธีการสร้าง Cluster บน Rancher

    เมื่อทำการกรอกข้อมูลเสร็จเรียบร้อยแล้ว ก็จะสามารถเข้าสู่หน้า Dashboard ของ Rancher ได้ โดยเมื่อเข้าไปแล้วจะสังเกตได้ว่าระบบยังไม่มี Cluster ของ Kubernetes สร้างไว้ ให้คุณทำการสร้าง Cluster โดยมีรายละเอียดวิธีการดังนี้

    1.ให้เข้าไปที่หน้า Dashborad ของ Rancher จากนั้นกดที่ปุ่ม “Add Cluster” 

    Dashborad ของ Rancher

    2.เลือกประเภท Cluster เป็น “From existing nodes (Custom)” 

    From existing nodes (Custom)

    3.ทำการตั้งค่า Cluster โดยตั้งชื่อให้เรียบร้อย จากนั้นตั้งค่าส่วนต่าง ๆ หรือจะเลือกเป็นค่า Defalut ของ Rancher ก็ได้เช่นเดียวกัน

    Defalut ของ Rancher

    วิธีการสร้างเครื่อง Instance สำหรับใช้เป็น Node ของ Kubernetes

    หลังจากทำการสร้าง Cluster ของ Kubernetes เรียบร้อยแล้ว ต่อมาให้ทำการสร้างเครื่อง Instance สำหรับใช้เป็น Node ของ Kubernetes โดยมีรายละเอียดวิธีการดังนี้

    1.ทำการสร้างเครื่อง Instance สำหรับใช้เป็น Node ของ Kubernetes

    1.1.สเปคแนะนำของ Instance สำหรับใช้งานทั่วไป

    • OS : Ubuntu 18.04
    • Package C หรือ E ตามความต้องการของ application
    • Networks Private : Enable
    • External IP : Yes

     โดยสร้างเครื่องทั้งหมด 5 เครื่องได้แก่

    • k8s-master-1
    • k8s-master-2
    • k8s-master-3
    • k8s-worker-1
    • k8s-worker-2

    1.2.สเปคแนะนำของ Instance สำหรับการสร้างแบบ All in one 

    • OS : Ubuntu 18.04
    • Package C หรือ E ตามความต้องการของ Application
    • Networks Private : Enable
    • External IP : Yes

    โดยสร้างเครื่องทั้งหมด 3 เครื่องได้แก่

    • k8s-node-1
    • k8s-node-2
    • k8s-node-3

    *** Cluster all in one  เป็น Cluster ที่เหมาะสำหรับทดสอบการทำงานของ App ต่างๆ ไม่แนะนำให้ใช้งานกับโปรดักส์ชันจริง

    2.เมื่อทำการสร้าง Instance แล้วให้ทำการติดตั้ง Docker ลงใน Node ของ Kubernetes ทุกเครื่องที่เราได้ทำการสร้างไว้โดยใช้คำสั่ง

    2.1.คำสั่ง update

    # apt-get update

    2.2.คำสั่ง upgrade

    # apt-get upgrade -y

    2.3.คำสั่ง install docker

    # curl https://releases.rancher.com/install-docker/19.03.sh | sh

    # usermod -aG docker root


    วิธีการกำหนด Role และเชื่อมต่อแต่ละ Node ของ Kubernetes เข้าไปยัง Cluster

    ขั้นตอนต่อมาหลังจากสร้าง Instance กำหนด Role สำหรับใช้เป็น Node ของ Kubernetes เรียบร้อยแล้วให้ทำการกำหนด Role และเชื่อมต่อแต่ละ Node ของ Kubernetes เข้าไปยัง Cluster ที่เราสร้างไว้ โดยมีรายละเอียดวิธีการดังนี้

    1.อันดับแรกให้ทำการกำหนด Role ให้กัตบ Instance แต่ละตัวโดยมีรายละเอียดดังนี้

    1.1.Instance สำหรับ k8s-master จะต้องเลือก Role ดังนี้

    • etcd
    • Control Plane

    ทำเครื่องหมายถูกเรียบร้อยแล้ว ให้ทำการ Copy คำสั่ง Docker เพื่อทำการ Run บนเครื่อง k8s-master ทุกเครื่อง

    Copy คำสั่ง Docker

    6.2.Instance สำหรับ k8s-worker จะต้องเลือก Role ดังนี้

    • Worker

    เทำเครื่องหมายถูกเรียบร้อยแล้ว ให้ทำการ Copy คำสั่ง Docker ทำการ run เพื่อทำการ Run บนเครื่อง k8s-worker ทุกเครื่อง

    k8s-worker

    หากเป็นเครื่อง All in one ให้ทำการทำเครื่องหมายถูกทั้งหมด และทำการ Run Docker ที่ k8s-node ทุกเครื่อง

    Run Docker

    หลังจากนั้นเข้าไปยัง Cluster แล้วเข้าที่ Node จะเห็นว่าระบบกำลังลง Kubernetes ให้อยู่

    Kubernetes
  • เปลืองเวลาเป็นวัน ๆ ไปทำไม ? ในเมื่อใช้ Docker ช่วยได้ !

    เปลืองเวลาเป็นวัน ๆ ไปทำไม ? ในเมื่อใช้ Docker ช่วยได้ !

    Docker คือ “Software Container”

    Docker คือ อะไร Docker นั้นถือเป็นหนึ่งใน “Software Container” ที่เป็นการสร้าง “สภาพแวดล้อมเฉพาะ” ให้กับซอฟต์แวร์ต่าง ๆ และทำให้ซอฟต์แวร์เหล่านั้น สามารถทำงานได้โดยไม่ไปรบกวนกับซอฟต์แวร์ตัวอื่น ในระบบปฏิบัติการเดียวกัน โดยคุณสามารถนำ Container ไปติดตั้งบนคอมพิวเตอร์หรือเซิร์ฟเวอร์เครื่องอื่น ๆ ได้เลยทันที โดยที่โปรแกรมในนั้นยังทำงานได้ตามปกติ ไม่ผิดเพี้ยนไปจากเดิม

     

    ยกตัวอย่างง่าย ๆ … เช่น ตอนที่คุณเขียนเว็บไซต์ขึ้นมาบนเครื่องของคุณเอง คุณสามารถปรับเปลี่ยน Setting ค่าต่าง ๆ หรือดาวน์โหลดอะไรมาติดตั้งเพิ่มอีกมากมาย เมื่อต้องการนำไปขึ้น Production บน Server ต้องทำการโยกเอาก้อนทั้งหมดนั้นไป ทำให้ต้องเสียเวลาทำ Config ทุกอย่างบน Server ใหม่อีกครั้ง และบางทีระหว่างดำเนินการอาจเกิดข้อผิดพลาด ข้อมูลไม่ครบ ไฟล์หาย ข้อมูลตีกัน ทำให้เสียเวลากลับไปค้นหาว่าเกิดปัญหาตรงส่วนไหน รวมถึงต้องแก้ไขอะไรบ้าง เพียงเท่านี้ก็ทำให้คุณรู้สึกเหนื่อยแล้วใช้มั้ย ?

    หยุด ! วงจรชีวิตยาก ๆ ด้วย Docker

    การใช้ “Docker” เข้ามาช่วยในการแพ็ค Software เหล่านี้ เพื่อให้อยู่ในรูปแบบของ Container หลังจากนั้น คุณสามารถนำ Container ไปรันบนเครื่องไหนก็ได้ โดย Application ของคุณยังทำงานได้ปกติ ไม่ว่าจะนำไปรันบนเครื่อง Development หรือบน Production Server ไหนก็ตาม


     เสกงาน 1 วัน ให้เหลือแค่ 1 ชั่วโมงด้วย

     

    ภาพประกอบ 1 docker คือ

     

    ในปัจจุบันมีผู้ให้บริการ Software Container ให้เลือกใช้บริการมากมาย แต่ Docker ได้รับความนิยมมากที่สุด เพราะใช้งานได้ง่าย ด้วย 3 Steps Build, Ship and Run ที่มีประสิทธิภาพสูง แถมยังมี Community ใหญ่มาก ทำให้มี Q&A มากมายตามมาในภายหลัง เมื่อคุณพบปัญหาอะไรก็ไม่ต้องลอยเคว้งคว้างกลางทะเลอยู่คนเดียว

    (Build) Dockerfile : คือการที่นำ Sourcecode + Config ที่รวบรวมคำสั่งทุกอย่าง ที่ใช้ในการ Run แอป และนำไปสร้างเป็นไฟล์ Docker Image 

    (Ship) Docker Image : คือไฟล์ Image ของ Application ที่สร้างมาจาก Dockerfile โดยสามารถนำ Image ไปรันบนเครื่องไหนก็ได้ที่มี Docker

    (Run) Docker Container : เป็น Container ที่มี Application ตาม Image ที่ติดตั้งไว้ และสามารถเรียกใช้งาน Application ได้โดยง่าย


     ประโยชน์ที่ได้จากการใช้ Docker

     

    ภาพประกอบ 2 docker คือ

     

    (1) Save Time : สามารถลงโปรแกรมเพื่อใช้งาน ได้ภายในไม่กี่วินาทีเท่านั้น
    (2) Save Cost : ประหยัดค่าใช้จ่ายมากขึ้นเพราะใช้ทรัพยากรน้อยลง
    (3) Save Data Storage : ประหยัดพื้นที่เก็บ และติดตั้งระบบได้รวดเร็วกว่าการทำ VM ถึง 90%
    (4) Easy to Scale : สามารถขยายระบบได้ง่าย เพื่อรองรับจำนวนผู้ใช้งานที่มากขึ้น และยังสามารถดึง Resource ของเครื่องมาใช้ได้เต็มประสิทธิภาพ ซึ่งต่างกับ VM ที่มักจะติดขีดจำกัดของเครื่อง
    (5) Environment Managing : ด้วยรูปแบบที่เป็น Image สำเร็จรูป  ทำให้เราสามารถติดตั้งโปรแกรม หรือตั้งค่าระบบ ได้ภายในเวลาไม่กี่วินาที และเพียงแค่ไม่กี่คำสั่งเท่านั้น
    (6) Portability : ทำให้ย้ายไประบบ IT infrastructure อื่น ๆ ได้ง่าย  ไม่ต้องเสียเวลา Setup โปรแกรมใหม่ทีละเครื่อง และช่วยลด Error ที่อาจเกิดจาก การนำระบบขึ้น Production
    (7) Reduce Time-to-Market : ช่วยลดเวลาการนำแอปพลิเคชันต่าง ๆ เข้าสู่ตลาด
    (8) Community Hub : ด้รับการพัฒนาและอัปเดตฟีเจอร์ใหม่เรื่อย ๆ มี Community สำหรับแลกเปลี่ยนข้อมูลต่าง ๆ มากมาย


    ใครที่เหมาะกับการใช้ Docker ?

    เนื่องจากการใช้ Container Software ไม่ใช่เรื่องยากหรือไกลตัวอีกต่อไป การนำมาใช้ ล้วนมีแต่ข้อดีและเป็นประโยชน์ ดังนั้นจึงไม่ใช่แค่เรื่องของ Developer หรือ System Admin อีกต่อไป แต่องค์กรเองต้องเข้าใจและเห็นความสำคัญของเทคโนโลยีนี้เช่นกัน


    เริ่มศึกษายังไงดี ?

    การศึกษา Docker สามารถหาข้อมูลได้ทั่วไปตามอินเตอร์เน็ต แต่การศึกษาและนำมาใช้งานอย่างถูกต้องและปลอดภัยนั้น ต้องใช้เวลาทำความเข้าใจพอสมควร แต่หากใครยังสงสัย ว่าการใช้งาน Docker ต่างกับ VM แบบเดิม ๆ ที่ใช้งานอย่างไร แล้วอยากเริ่มต้นด้วยตนเองง่าย ๆ OpenLandscape Cloud ขอแนะนำวิธีศึกษาการใช้งานเบื้องต้นด้วยการดาวน์โหลด E-Book ที่ทาง Docker ได้จัดทำไว้ได้เลยที่นี่

    โดยเนื้อหาใน E-Book จะประกอบไปด้วย

    • ทำไม Container ถึงไม่ใช่ VM
    • เราสามารถนำ Container และ VM มาใช้ร่วมกันได้อย่างไร
    • การใช้ Container บน Physical Server และ Virtual Machine นั้นแตกต่างกันอย่างไร
    • เริ่มต้นใช้งาน Docker และ Container

    Source : [1] [2] [3] [4]

    ติดตามข่าวสารใหม่ ๆ หรือข้อมูลน่ารู้อีกมากมายได้ที่

      OpenLandscape Fanpage | https://www.facebook.com/openlandscapecloud/
      OpenLandscape Twitter | https://www.twitter.com/olscloud/
      OpenLandscape Cloud | https://openlandscape.cloud/