K3S on Raspberry Pi — Setup

เนื่องจากว่าก่อนหน้านี้เคยมีปัญหาเรื่องการใช้งาน Kubernetes บนคอมเครื่องที่ใช้ทำงานค่อนข้างมาก เนื่องจากตัว Rancher Desktop หรือ Docker Desktop เองค่อนข้างที่จะกิน Resource เป็นอย่างมาก หากมีการติดตั้ง service ต่างๆ ที่จำเป็นเอาไว้ใช้งาน และพอได้มีการพัฒนาโปรแกรมก็เลยเป็นอุปสรรคทำให้ไม่สามารถใช้งานเครื่องเพื่อพัฒนาได้เต็มที่

Previously, there were quite a few issues with using Kubernetes on the work computer because Rancher Desktop or Docker Desktop consume significant resources, especially when various necessary services are installed. This became an obstacle when developing programs, preventing the computer from being fully utilized for development.

Notebook’s resource after run Kubernetes on Rancher.

ผมก็เลยไปลองเอา Raspberry Pi ที่ตัวเองมีอยู่มาทำเป็น Mini Cluster เพื่อใช้งาน Kubernetes K3S สำหรับลง Service ที่เกี่ยวข้องกับการทำงาน เช่น SonarQube, Redmine เป็นต้น

So, I decided to use my Raspberry Pi to create a mini-cluster for running Kubernetes K3S to deploy work-related services, such as SonarQube and Redmine.

สำหรับ Kubernetes ที่จะใช้งานในบทความนี้ จะเป็นตัวที่ชื่อว่า K3S ซึ่งจะถูกออกแบบมาให้สามารถติดตั้งได้บนทุกอุปกรณ์ เพราะมีขนาดที่เล็กกว่า K8S รวมทั้งยังกิน Resource ที่น้อยกว่ามากๆ แต่ก็สามารถทำงานได้แบบเดียวกับ K8S ที่เป็นพี่ใหญ่

The Kubernetes used in this article will be K3S, designed to be installable on any device because of its smaller size compared to K8S, as well as its significantly lower resource consumption. However, it can still perform the same tasks as its larger counterpart, K8S.

How it work from k3s.io

สำหรับอุปกรณ์ที่จำเป็นต้องใช้งาน มีดังนี้

The necessary equipment for this setup includes the following:

  • Raspberry Pi 3 / 4 or 5

สำหรับ Raspberry Pi รุ่นที่สามารถเอามาใช้งานนั้น จะใช้ได้ตั้งแต่ Version 3 ขึ้นไป เพราะสามารถรองรับ OS แบบ 64 บิต

For the Raspberry Pi models that can be used, versions 3 and up are suitable because they support a 64-bit OS.

Raspberry Pi 5
  • Switch

สำหรับตัว Network จะใช้งานเป็น Switch แบบ 4 ports แต่ถ้าไม่อยากใช้งาน adapter สามารถใช้งานเป็นแบบที่มี POE เพื่อจ่ายไฟให้ตัว Raspberry Pi แทน หรือหากจะใช้งานผ่าน Wi-Fi ก็ไม่จำเป็นต้องใช้ครับ แต่สำหรับในบทความนี้จะใช้งานเป็นแบบ LAN ครับ

For the network, a 4-port switch will be used. However, if you don’t want to use an adapter, you can use one with POE to supply power to the Raspberry Pi. Alternatively, if you use Wi-Fi, you don’t need to use a switch. But for this article, I will be using a LAN setup.

สำหรับ Raspberry Pi 3 หากจะใช้งาน POE จำเป็นต้องมีตัว POE HAT ก่อนนะครับ

For Raspberry Pi 3, if you want to use POE, you will need a POE HAT.

Network switch
  • Raspberry Pi’s adaptor

สำหรับใช้งานเป็นแหล่งพลังงานของตัว Raspberry Pi ซึ่งเราสามารถใช้งานเป็นแบบสาย USB ก็ได้ครับ

As a power source for the Raspberry Pi, you can also use a USB cable.

Raspberry Pi’s Adapter
  • Micro SD Card

สำหรับติดตั้งและใช้งานเป็นตัวจัดเก็บข้อมูลหลักของตัว Raspberry Pi หรือถ้าใครจะใช้งานเป็นแบบ SSD หรือ Hard disk SATA จำเป็นต้องซื้อ HAT เพิ่มครับ

For installation and use as the main storage for the Raspberry Pi, you can use an SD card. However, if you want to use an SSD or SATA hard disk, you will need to purchase an additional HAT.

สำหรับขนาดของ Micro SD Card ที่แนะนำ ควรมีขนาดตั้งแต่ 32 GB ขึ้นไป ซึ่งถ้าใช้งาน Raspberry Pi 3 เองจะรองรับสูงสุดอยู่ที่ 32GB พอดีครับ แต่ถ้าหากใช้งาน Raspberry Pi 4 ขึ้นไป ก็จะสามารถรองรับได้ที่ 2TB หรือถ้าใช้เป็น Hard disk เอง อาจจะสามารถใช้งานได้มากกว่านั้นครับ

The recommended size for a Micro SD Card should be 32 GB or more. If you use a Raspberry Pi 3, it supports up to 32 GB. However, if you use a Raspberry Pi 4 or newer, it can support up to 2 TB. Alternatively, using a hard disk might allow for even greater storage capacity.

Micro SD Card
  • Micro SD Card Reader

ใช้สำหรับติดตั้ง OS ลง Micro SD Card

It’s used to install the OS onto the Micro SD Card.

Micro SD Card Reader

ต่อไปจะเป็นขั้นตอนสำหรับติดตั้ง OS สำหรับใช้งานตัว Raspberry Pi กันครับ

Next, let’s proceed with the steps to install the operating system for use with the Raspberry Pi.

ขั้นแรกเราก็จะไปโหลดโปรแกรมสำหรับช่วยติดตั้ง OS กัน สำหรับในบทความนี้ ผมจะใช้โปรแกรมของทาง Raspberry Pi เองเลย ซึ่งก็คือตัว Raspberry Pi Imager โดยสามารถดาวน์โหลดได้จากลิงค์นี้ครับ https://www.raspberrypi.com/software/ แล้วจากนั้นก็เลื่อนลงมาก็จะเจอตามภาพ

First, we’ll download the program to assist with installing the OS. For this article, I’ll use Raspberry Pi’s own program, which is the Raspberry Pi Imager. You can download it from this link: https://www.raspberrypi.com/software/. Then, scroll down to find it as shown in the image.

หลังจากที่ดาวน์โหลดและติดตั้งโปรแกรมแล้ว พอเราเปิดโปรแกรมขึ้นมาก็จะเจอกับหน้าต่างแรกของโปรแกรม ดังนี้

After downloading and installing the program, when we open it, we will encounter the program’s initial window, as follows:

Raspberry Pi Imager

จากนั้นให้เราเลือก Raspberry Pi ที่เราจะใช้งาน โดยคลิกที่ Choose Device แล้วจะแสดงรายการของ Device ที่รองรับ โดยในที่นี้จะใช้งานเป็น Raspberry Pi 4

Next, we select the Raspberry Pi we want to use by clicking on “Choose Device.” This will display a list of supported devices. In this case, we’ll use the Raspberry Pi 4.

Raspberry Pi Imager Device Select

หลังจากที่เลือก Device แล้วขั้นต่อไปก็จะทำการเลือก OS ที่จะใช้งาน โดยเราจะเลือกใช้งานเป็น Raspbian OS แบบ 64 บิต ดังภาพ

After selecting the device, the next step is to choose the operating system (OS) to use. We’ll select Raspbian OS 64-bit, as shown in the image.

จากนั้นเราก็จะมาเลือก Micro SD Card ที่จะใช้งานกัน สำหรับเครื่องที่ผมใช้งานจะอยู่ที่ Drive G:

Next, we’ll select the Micro SD Card to use. For the device I’m using, it’s located at Drive G:.

สำหรับรายการที่เลือกก็จะเป็นดังภาพ

For the selected item, it will be as shown in the image.

Raspberry Pi Imager Configuration

หลังจากนั้นกด Next เพื่อไปยังขั้นตอนต่อไป และจะมีหน้าต่างแจ้งเตือนขึ้นมาว่าเราสามารถกำหนด Setting ต่างๆ ได้ โดยในขั้นตอนนี้ผมจะเลือก Edit Setting เพื่อที่ตอน Boot Raspberry Pi ขึ้นมาจะได้พร้อมใช้งานได้ทันที

After that, click “Next” to proceed to the next step. A notification window will appear, indicating that we can adjust various settings. In this step, I’ll select “Edit Setting” so that when the Raspberry Pi boots up, it will be ready for immediate use.

Raspberry Pi OS Custom and confirm to start

ในหน้าต่างแรกเราสามารถกำหนดชื่อ Device, User Log-In และ Local สำหรับค่าต่างๆ ที่ผมกำหนดก็จะเป็น ดังภาพ

In the first window, we can set the device name, user log-in, and local settings. The values I’ll set will be as shown in the image.

Raspbian OS General Setting

และในส่วนของ Service เองก็จะเป็นการเปิดใช้งาน SSH เพื่อให้สามารถ Remote เข้าไปทำงานได้

And in the Service section, it will be enabling SSH to allow remote access for operation.

Raspbian OS Service Setting

ส่วน Options ผมก็จะ Default Setting ดังภาพ

For the Options section, I’ll keep the default settings as shown in the image.

Raspbian OS Option Setting

หลังจากที่ทำการกำหนดค่าต่างๆ เสร็จแล้ว ก็ให้ทำการ Save และจะกลับมายังหน้าต่างก่อนหน้า จากนั้นก็ให้คลิกที่ Yes เพื่อเริ่มทำการติดตั้ง OS ลง Micro SD Card

After setting up all the configurations, click on “Save” to return to the previous window. Then, click “Yes” to start installing the OS onto the Micro SD Card.

Raspberry Pi OS Custom and confirm to start
Confirmation to start process
Raspbian OS installing
Raspbian OS Image verifying

หลังจากที่ทำการติดตั้ง OS เสร็จแล้ว จะมีหน้าต่างนี้ขึ้นมา ก็จะสามารถถอด Micro SD Card ไปใส่ Raspberry Pi เพื่อใช้งานได้แล้วครับ

After the OS installation is complete, this window will appear. You can then safely remove the Micro SD Card and insert it into the Raspberry Pi for use.

Raspbian OS image installation finished

หลังจากที่เราใส่ Micro SD Card เข้ากับ Raspberry Pi และ Boot ขึ้นมาเรียบร้อยแล้ว เราก็จะสามารถใช้คำสั่ง SSH เพื่อ Remote เข้าไปใช้งานได้แล้วครับ

Once you’ve inserted the Micro SD Card into the Raspberry Pi and it has successfully booted up, you can use the SSH command to remotely access and use it.

สำหรับการหา IP ของตัว Raspberry Pi เราจะใช้ตัวโปรแกรม Advance IP Scan หรือจะดูจากใน router ก็ได้ ตามที่เราสะดวกครับ

For finding the IP of the Raspberry Pi, we can use the program Advanced IP Scanner or check from the router, whichever is more convenient for us.

IP table

หลังจากนั้นให้ลองเชื่อมต่อโดยใช้ ssh เชื่อมต่อไปยัง Raspberry Pi โดยรูปแบบคำสั่งก็จะเป็นแบบนี้ครับ

After that, try connecting using SSH to the Raspberry Pi. The command format will be like this.

ssh <User>@<IP>

ซึ่งเมื่อเชื่อมต่อได้แล้ว ตัว cli ก็จะมีหน้าตาแบบนี้

Once connected, the CLI will look like this.

สำหรับ Raspberry Pi ตัวอื่นๆ ที่จะเอามาเชื่อมต่อ ก็จะมีวิธีการติดตั้งแบบเดียวกันครับ

For other Raspberry Pi devices that you want to connect, the installation method will be the same.

Part 1 — Raspberry Pi Setup

Part 2 — Static IP Setup

Part 3 — Main Cluster Setup

Part 4 — Node Cluster

Part 5 — Ingress Nginx

Part 6 — Remote Access

Part 7 — Portainer

Cluster install — update on 2024–08–04

--

--