Rancher คืออะไร ?
Rancher คือ Complete container management platform หรือ ซอฟต์แวร์ที่ใช้ในการจัดการ Kubernestes ภายใน Cluster โดยความพิเศษของตัว Rancher นอกจากจะสามารถรอบรับระบบ Operating system และ Hypervisor ได้หลากหลายแล้ว ยังสามารถจัดการ Cluster ได้หลาย ๆ Cluster ผ่าน WebUI ได้อย่างง่ายดายโดยที่ไม่ต้องใช้ Command line
สนใจสมัครใช้บริการได้ที่ : สมัครใช้บริการ OpenLandscape Cloud
บทความนี้มีหัวข้ออะไรบ้าง
วิธีการตั้งค่า 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 Size | Clusters | Nodes | CPUs | RAMs |
Small (Package D) | Up to 3 | Up to 40 | 2 | 4 GB |
Medium (Package E) | Up to 12 | Up to 180 | 4 | 8 GB |
Requirements VM ของ Kubernetes master node
Deployment Size | CPUs | RAMs |
POC Size(Package C) | 2 | 2 GB |
Production Size(Package E) | 4 | 8 GB |
Requirements VM ของ Kubernetes worker node
Deployment Size | CPUs | RAMs |
POC Size(Package C) | 2 | 2 GB |
Production Size(Package E) | 4 | 8 GB |
Requirements VM ของ Kubernetes All in one
Deployment Size | CPUs | RAMs |
minimum(Package E) | 4 | 8 GB |
Recommend(Package G) | 8 | 16 GB |
*** ในส่วนนี้ไม่แนะนำสำหรับใช้งานจริง เพราะอาจจะทำให้ App แย่งทรัพยากรกันได้
วิธีการติดตั้ง Rancher
1.อันดับแรกให้คุณทำการสร้าง Instance สำหรับใช้ในการติดตั้ง Rancher
[ตัวอย่างการเลือก Spec ของ Instance]
- OS: Ubuntu 18.04
- Package D
- Networks Private: Enable
- External IP: Yes
- Instance Name: rancher-server
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 จะทำการดึง 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”
1.3.ทำการตรวจสอบ Url ของ Rancher อีกครั้ง
วิธีการสร้าง Cluster บน Rancher
เมื่อทำการกรอกข้อมูลเสร็จเรียบร้อยแล้ว ก็จะสามารถเข้าสู่หน้า Dashboard ของ Rancher ได้ โดยเมื่อเข้าไปแล้วจะสังเกตได้ว่าระบบยังไม่มี Cluster ของ Kubernetes สร้างไว้ ให้คุณทำการสร้าง Cluster โดยมีรายละเอียดวิธีการดังนี้
1.ให้เข้าไปที่หน้า Dashborad ของ Rancher จากนั้นกดที่ปุ่ม “Add Cluster”
2.เลือกประเภท Cluster เป็น “From existing nodes (Custom)”
3.ทำการตั้งค่า Cluster โดยตั้งชื่อให้เรียบร้อย จากนั้นตั้งค่าส่วนต่าง ๆ หรือจะเลือกเป็นค่า 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 ทุกเครื่อง
6.2.Instance สำหรับ k8s-worker จะต้องเลือก Role ดังนี้
- Worker
เทำเครื่องหมายถูกเรียบร้อยแล้ว ให้ทำการ Copy คำสั่ง Docker ทำการ run เพื่อทำการ Run บนเครื่อง k8s-worker ทุกเครื่อง
หากเป็นเครื่อง All in one ให้ทำการทำเครื่องหมายถูกทั้งหมด และทำการ Run Docker ที่ k8s-node ทุกเครื่อง
หลังจากนั้นเข้าไปยัง Cluster แล้วเข้าที่ Node จะเห็นว่าระบบกำลังลง Kubernetes ให้อยู่