มาลองของใหม่กับ Rancher Desktop

หล้งจากที่ทำงานกับ Docker Desktop มานานมากแล้ว และก็ประสบปัญหากับการใช้ Resource อันมหาศาลเนื่องมาจาก WSL และ VMMem ไม่คืน Resource เลยสักทีจนต้องใช้คำสั่งพิฆาต….

$> wsl -shutdown

จน… เห่อ… บ่อยไป เอาออกเลยดีกว่า…. จบ ….

Rancher Desktop Logo

จนกระทั่ง Rancher (Enterprise Kubernetes Management | Rancher) พึ่งปล่อยโปรเจค Open Source ตัวใหม่เมื่อไม่กี่เดือนมานี้ (สำหรับบทความเกี่ยวกับ Rancher ภาษาไทยสามารถอ่านได้ที่ Rancher จากโปรเจกต์ OpenSource สู่ซอฟต์แวร์ Kubernetes clusters ระดับแนวหน้า | OLS Community | Technology news, knowledge base & tutorials (openlandscape.cloud))

นั่นก็คือ… Rancher Desktop ซึ่งภายในจะมีส่วนประกอบ ดังนี้

Rancher Desktop Architecture (Rancher Desktop: Kubernetes and container management on the desktop)

จากภาพข้างบน เราจะเห็นได้ว่าตัว Rancher Desktop นั้น จะมีส่วนของ Kubernetes command (KIM, Kubectl และ Helm) เป็นส่วน interface สำหรับให้เราใช้งาน และในส่วนของการทำงานหลังบ้านทั้ง Windows และ Mac นั้น ก็จะมี K3S หรือก็คือตัว Lightweight Kubernetes ที่ทาง Rancher เองได้ทำการออกแบบมาให้ทำงานบนอุปกรณ์ IOT หรือ Arm CPU ซึ่งทาง Rancher เองบอกว่าตัว K3S นั้นจะเป็นแบบ Single Execute File คือจะมีแค่ตัว K3S เพียงตัวเดียวก็สามารถใช้งานได้แบบ K8S (ส่วนตัวเอาไปใช้งานใน Raspberry Pi แล้วรู้สึกว่าทำงานได้ราบลื่นมากครับ)

Lightweight Kubernetes -K3S Architecture (K3s: Lightweight Kubernetes)

และอีกส่วนหนึงก็คือ Containerd ซึ่งจะเป็นตัว Container Software ที่ Cloud เจ้าต่างๆ นำมาใช้งานกันอย่างแพร่หลายและยังสามารถทำงานบน Arm CPU ได้อีกด้วย

Could Architecture (containerd — An industry-standard container runtime with an emphasis on simplicity, robustness and portability)

จะเห็นได้ว่า… แต่ละอย่างที่ Rancher นำเอามาประกอบเข้าเป็นตัว Rancher Desktop นี่ เรียกได้ว่าเบาๆ ทั้งนั้น แต่….

Rancher Desktop ยังอยู่ในสถานะ Pre-release (ในวันที่เขียนบทความนี้นะครับ) แต่ก็มีการปล่อยตัวติดตั้งให้เราสามารถนำมาทดลองใช้งานได้แล้วนะครับ ซึ่งเราสามารถเข้าไป download ได้ที่ github ของทาง Rancher หรือตามลิงค์นี้ => Releases · rancher-sandbox/rancher-desktop (github.com)

เรามาพูดถึงส่วนของการใช้งานกันบ้างดีกว่า ขอเกรินก่อนว่าตัว โปรแกรมจัดการของ Rancher นั้นถูกพัฒนาโดยใช้ Nuxt + Electron เพื่อให้สามารถทำงานได้บนทุกๆ Platform เลยทำให้ค่อนข้างจะสะดวกเวลาที่เราจำเป็นต้องย้ายไปทำงานบน Platform อื่น เพราะหน้าตาโปรแกรมจะเหมือนกัน (เนื่องจากเขาเปิดเป็น Open Source ก็เลยมือบอนแอบดูบ้างนิดหน่อย)

Rancher Desktop UI

สำหรับในส่วนต่างๆ ของ Rancher Desktop ณ ตอนนี้ ก็มีดังนี้

  • General ส่วนนี้ไม่มีอะไรมากแค่เป็นหน้า Welcome และมีการแจ้ง Version รวมถึงการอนุญาตให้มีการเก็บข้อมูลการใช้งานและข้อผิดพลาดต่างๆ ในตอนใช้งาน
Rancher Desktop General Menu
  • Kubernetes Settings จะเป็นส่วนในการจัดการ forward port และกำหนด version ของ Kubernetes version ซึ่งตรงนี้หากมีการเปลี่ยนแปลง Version ตัวโปรแกรมก็จะทำการ Download Kubernetes ตัวที่เราเลือกลงมาติดตั้งให้อัตโนมัติ
Rancher Desktop Kubernetes Settings
  • Port Forwarding สำหรับในส่วนนี้จะเป็นการกำหนด port forward สำหรับ Pod และ Container ต่างๆ ที่เรา Deploy เพื่อให้สามารถเรียกใช้งานได้
Rancher Desktop Port Forwarding
  • Images ส่วนนี้จะเป็นส่วนจัดการ Container Image ซึ่งเราสามารถ pull / push / scan / delete image ได้ในหน้านี้
Rancher Desktop Images
  • Troubleshooting สำหรับเมนูนี้ก็จะเป็นเพียงการสั่ง Factory reset เพื่อเป็นการคืนค่า Default ของระบบ คิดว่าในอนาคตน่าจะมีเมนูมากกว่านี้
Rancher Desktop Troubleshooting

ต่อไปเราจะมาดูกันต่อในส่วนของการใช้งานผ่าน CLI กันบ้างดีกว่าครับ

สำหรับการทำงานกับ Containerd นั้น เราจะใช้คำสั่ง kim หรือ Kubernetes Image Manager (rancher/kim: In ur kubernetes, buildin ur imagez (github.com)) ในการทำงานครับ

KIM — Kubernetes Image Manager

ยกตัวอยางเช่นการ Pull image ( $> kim pull redis )

pull redis image

หรือถ้าเราจะทำการ build image ก็สามารถใช้งาน Dockerfile ที่เราเคยสร้างกับ Docker desktop ได้เลย โดยใช้คำสั่ง
$> kim build -f <Dockerfile> -t <image>:<tag> .

build image

ซึ่งรูปแบบคำสั่งต่างๆ ก็จะยังคงคล้ายกับคำสั่งของ Docker ทำให้คนที่ย้ายมาจาก Docker สามารถใช้งานได้เลยโดยที่ไม่ต้องเสียเวลาเรียนรู้คำสั่งใหม่

และสำหรับการทำงานกับ Kubernetes นั้น เราก็จะใช้คำสั่ง Kubectl หรือ Kubernetes cluster manager (kubectl | Kubernetes) ได้ตามปกติ เหมือนกับการใช้งาน K8S ทุกอย่าง

Kubectl — Kubernetes cluster manager

อย่างเช่นการแสดงรายการ Node ของ Kubernetes

Display Kubernetes Nodes

หรือถ้าใครจะใช้งานเป็น wsl ทาง Rancher เองก็ได้มีการติดตั้งมาให้ด้วยโดยจะใช้ชื่อว่า rancher-desktop

สำหรับการใช้งานหลักๆ แล้วตัว Rancher Desktop สามารถตอบโจทย์ได้ดีเลยทีเดียว สำหรับคนที่มีปัญหากับการใช้งาน Docker แต่ไม่รู้จะหันไปใช้อะไรแทน

ส่วน version เต็มตอนนี้ยังไม่มีกำหนดการที่แน่ชัดครับ แต่ทาง rancher เองก็ได้มีการเปิดให้นักพัฒนาสามารถเข้าไปช่วยพัฒนาได้ที่ Github เผื่อใครสนใจครับ

หวังว่าบทความนี้พอจะมีประโยชน์ไม่มากก็น้อยสำหรับทุกๆ คนครับ หากผิดพลาดประการใดก็ขออภัย ณ ที่นี้ด้วยครับ ขอบคุณที่เข้ามาอ่านครับ