rpi-worker-service-node

작성: AI / 수정: nkey

k3s 클러스터에서 서비스 워커 노드 역할을 하는 라즈베리파이입니다.
현재 이 레포는 코드/설정 파일이 비어있을 수 있으며, 운영은 주로 k3s 리소스(마스터 레포)와 노드 로컬 설정(node-exporter/promtail 등)으로 구성됩니다.

Quickstart

# (Master) 디스크 채우기 데모 배포 (service 노드에 스케줄되도록 nodeSelector 사용)
git clone https://nkeystudy.site/gitea/2025-capstone/rpi-master-node.git
cd rpi-master-node
kubectl apply -f k3s-manifests/disk-fill-demo.yaml

# (Master) Pod 이름 확인 후 exec로 디스크 채우기
POD=$(sudo kubectl get pod -n alert-service -l app=disk-fill-demo -o jsonpath='{.items[0].metadata.name}')
sudo kubectl exec -n alert-service "$POD" -- /usr/local/bin/fill_disk_safe.sh /tmp/disk-fill-demo 90 1024

# (Master) 정리
sudo kubectl exec -n alert-service "$POD" -- cleanup_disk.sh /tmp/disk-fill-demo

Requirements

  • Runtime/Language: k3s 워커 노드(서비스 실행)
  • Dependencies: (노드 로컬) node-exporter, promtail
  • Tools: kubectl(마스터에서), systemctl(노드에서)

Configuration

Environment Variables

  • (repo 내 설정 파일 없음)

Ports

Service Port Description
node-exporter (node) 9100 Prometheus scraping
promtail (node) 9080 Prometheus scraping

Usage (minimal)

  • 노드에 디스크 채우기 데모가 스케줄되도록 라벨(예시)
# (Master) service 노드에 라벨 부여(디스크 데모는 nodeSelector: demo-service="true" 사용)
kubectl label node rpi-worker-service demo-service=true
  • node-exporter 상태 확인(노드에서)
sudo systemctl status node_exporter
curl http://localhost:9100/metrics | head
  • promtail 상태 확인(노드에서)
sudo systemctl status promtail

(All nodes) node-exporter, promtail 설치 (수동)

설정 파일 설명

  • 이 레포에는 설정 파일이 포함되어 있지 않습니다.
  • 서비스 노드에서 중요한 “설정/구성”은 아래 2가지 흐름으로 관리됩니다.
    1. K8s 매니페스트: rpi-master-node/k3s-manifests/disk-fill-demo.yaml (service 노드에 스케줄)
    2. 노드 로컬 수집기: node-exporter(prometheus scrape), promtail(loki push)

Notes

  • 디스크 채우기 데모 컨테이너에는 fill_disk_safe.sh, cleanup_disk.sh 등이 포함되어 있으며, kubectl exec로 실행합니다(명령은 조직 README 또는 rpi-master-node README 참고).
Description
쿠버네티스에서 서비스 노드 역할을 하는 라즈베리파이입니다.
Readme 24 KiB