K3S on Raspberry Pi — Portainer

ปกติแล้วในการทำงานกับ Kubernetes นั้น เราจำเป็นต้องใช้งานผ่านทาง CLI เพียงเท่านั้น ทำให้เป็นเรื่องลำบากสำหรับหลายๆ คนที่ไม่ถนัดใช้งานกันครับ ในบทความนี้เราจะมาทำการติดตั้ง Portainer เพื่อใช้งานแทนการใช้งานผ่านทาง CLI กันครับ

Normally, working with Kubernetes requires using the CLI, which can be difficult for many people who are not comfortable with it. In this article, we will install Portainer to use instead of the CLI.

เริ่มแรกให้ตรวจสอบว่าตอนนี้เราใช้งาน context ของ Raspberry Pi กันอยู่หรือเปล่า ด้วยคำสั่ง

First, check if we are using the context of the Raspberry Pi with the command

kubectl config get-contexts

หากเราใช้งาน context ตัวอื่นอยู่ สามารถเปลี่ยน context ด้วยคำสั่งนี้

If you are using a different context, you can change the context with this command

kubectl config use-context <context name>

จากนั้นเราก็จะตรวจสอบ Helm ในเครื่องของเราดูกันก่อนว่ามีการเพิ่ม Repo ของ Portainer เอาไว้หรือยัง ด้วยคำสั่ง

Next, let’s check if Helm on our machine already has the Portainer repo added with this command

helm repo list

จากภาพ แต่ละเครื่องอาจจะมี helm repo ไม่เหมือนกันครับ จากนั้นเราก็จะทำการเพิ่ม repo ของ Portainer กันด้วยคำสั่ง

As shown in the image, each machine might have different Helm repos. Now, let’s add the Portainer repo using the command

helm repo add portainer https://portainer.github.io/k8s/

แล้วเราก็จะทำการอัพเดท repo กันด้วยคำสั่ง

And then we’ll update the repo with the command

helm repo update

เมื่อเราเพิ่ม Repo และ Update กันเสร็จแล้ว ก็จะมาเริ่มทำการติดตั้งกันต่อเลยครับ โดยเราจะใช้คำสั่งติดตั้งตามนี้

Once we have added and updated the repo, we will proceed with the installation using the following command

helm upgrade --install --create-namespace -n portainer portainer portainer/portainer --set service.type=ClusterIP --set tls.force=true --set ingress.enabled=true --set ingress.ingressClassName=nginx --set ingress.annotations."nginx\.ingress\.kubernetes\.io/backend-protocol"=HTTPS --set ingress.hosts[0].host=<host name> --set ingress.hosts[0].paths[0].path="/"

จากนั้นให้ทำการเช็คสถานการทำงานของ pod ด้วยคำสั่ง

After that, check the status of the pod with the command

kubectl get pod -n portainer --watch

จากนั้นให้รอจนกว่าช่อง Ready จะเป็น 1/1 ก็จะพร้อมใช้งานแล้วครับ

Then, wait until the ‘Ready’ column shows 1/1, indicating that it is ready for use.

หลังจากนั้น ให้ทำการ map DNS กับไฟล์ hosts กันก่อน โดยให้เป็นไฟล์ hosts จาก C:\windows\system32\drivers\etc\hosts แล้วให้เพิ่ม IP และ DNS เข้าไป ดังภาพ

After that, map the DNS with the hosts file. Use the hosts file located at C:\Windows\System32\drivers\etc\hosts and add the IP and DNS entry as shown in the image.

หลังจากนั้น ให้ลองเข้าหน้าเว็บตาม DNS ที่เราใส่ไว้ใน hosts ก็จะเจอกับหน้าจอของ Portainer และให้เราระบุรหัสผ่านที่ต้องการ

Afterwards, try accessing the web page using the DNS specified in the hosts file. You should encounter the Portainer login screen, where you’ll need to provide your desired password.

หลังจากที่ระบุรหัสผ่านเสร็จแล้วก็จะเข้าสู่หน้า Quick Setup ของ Portainer ดังภาพ

Next, the page will redirect to the Quick Setup page like this.

ให้เราไปที่เมนู Home เพื่อกลับไปยังหน้า Dashboard ของ Portainer ก็จะเจอกับ Cluster ของเรา ดังภาพ

Go to the Home menu to return to the Portainer Dashboard page, where you will find our cluster, as shown in the image.

จากนั้นให้คลิกที่ Live connect เพื่อเข้าสู่หน้า Dashboard ของ Cluster ของเรา ดังภาพ

Then click on “Live connect” to access the Dashboard page of our cluster, as shown in the image.

เพียงเท่านี้เราก็สามารถจัดการ Cluster หรือติดตั้ง App จาก Helm ของเราผ่านทาง Portainer ได้แล้วครับ

With that, we can manage our cluster or install apps via Helm through Portainer.

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 — Portainer

Cluster install — update on 2024–08–04

--

--