ข้ามไปยังเนื้อหาหลัก

ติดตั้ง Ubuntu 24.04 LTS เพื่อรองรับ RKE2

·

บทนำ
#

ในการสร้าง Kubernetes Cluster ด้วย RKE2 (Rancher Next Generation) การเลือก OS ที่เสถียรเป็นหัวใจสำคัญ ผมเลือกใช้ Ubuntu 24.04 LTS เนื่องจากมีการสนับสนุนระยะยาว และเป็นเวอร์ชันที่ได้รับความนิยมสูงในสายงาน DevOps แม้ปัจจุบันในวันที่เขียนบทความ จะมีเวอร์ชันที่ใหม่กว่า อย่างเช่น Ubuntu 26 LTS ออกมาแล้วก็ตาม แต่เนื่องจากเพิ่งออกมาไม่กี่วัน ผมจึงอยากจะรอให้เสถียรระดับนึงก่อน

Tip

สำหรับการใช้งานในลักษณะ Node สำหรับ Kubernetes แนะนำให้ติดตั้งเฉพาะ Ubuntu Server (Minimal) เพื่อลดการใช้ทรัพยากรและลดช่องโหว่ด้านความปลอดภัย (Attack Surface)

(ดาวน์โหลด)[https://ubuntu.com/download]

ขั้นตอนการติดตั้ง OS
#

ในการติดตั้ง Ubuntu Server มีจุดที่ควรระวังเพื่อให้การทำงานของ RKE2 ราบรื่น

  • Static IP: ควรตั้งค่า IP Address แบบคงที่ (Static)
  • Disk Partition: หากเป็นไปได้ให้เตรียม Disk ไว้ 2 ลูก โดยกำหนดให้ DISK-1 เป็นพื้นที่สำหรับระบบปฏิบัติการ (OS) และ DISK-2 เตรียมไว้สำหรับเก็บข้อมูลระบบสำหรับ Longhorn ในขั้นตอนถัดไป

เตรียมระบบเพื่อรองรับ Persistent Volume (PV)
#

ในระบบ Kubernetes Cluster การทำ Shared Storage เป็นเรื่องจำเป็น โดยเฉพาะเมื่อมี Pod ที่ต้องเขียนข้อมูลลงพื้นที่ส่วนกลางร่วมกัน (ReadWriteMany) เราจึงต้องติดตั้ง NFS Client ไว้ในทุก Node

ติดตั้ง nfs-common
#

ทำการอัปเดต Repository และติดตั้ง Package เพื่อให้ Node สามารถเมานต์ (Mount) พื้นที่จาก NFS Server ได้:

sudo apt update
sudo apt install nfs-common -y

ทำไมต้องมี NFS?
#

NFS (Network File System) เป็นโปรโตคอลมาตรฐานที่ช่วยให้ Client สามารถเข้าถึงไฟล์บน Server ผ่านเครือข่ายได้เสมือนอยู่ในเครื่องตัวเอง ในส่วนของ Kubernetes เราใช้เพื่อ

  • Centralized Storage: เก็บข้อมูลรวมกันที่เดียวเพื่อให้ง่ายต่อการสำรองข้อมูล
  • High Availability: เมื่อ Pod ย้ายจาก Node A ไป Node B ข้อมูลจะยังคงตามไปใช้งานได้ต่อเนื่อง

ข้อแนะนำเพิ่มเติมก่อนเริ่มติดตั้ง RKE2
#

  • ปิด Swap: แนะนำให้ปิด Swap เพื่อประสิทธิภาพที่แน่นอน
sudo swapoff -a
# ทำการ comment บรรทัด swap ใน /etc/fstab ด้วย
  • Hostname: ตรวจสอบว่าแต่ละ Node มีชื่อ Hostname ที่ไม่ซ้ำกัน
  • Firewall: อย่าลืมอนุญาต Port ที่จำเป็นสำหรับ RKE2 (เช่น 9345, 6443) ดูได้จาก ข้อกำหนดเบื้องต้น
CoderChill
ผู้เขียน
CoderChill
Sharing insights on Kubernetes, DevOps, and global travel adventures. Follow for tech tips and travel stories!