23adb0c23461108fadd948168c3840694e8aca66
rpi-worker-service-node
작성: AI / 수정: nkey
k3s 클러스터에서 서비스 워커 노드 역할을 하는 라즈베리파이입니다.
현재 이 레포는 코드/설정 파일이 비어있을 수 있으며, 운영은 주로 k3s 리소스(마스터 레포)와 노드 로컬 설정(node-exporter/promtail 등)으로 구성됩니다.
Quickstart
Recommended
# (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가지 흐름으로 관리됩니다.
- K8s 매니페스트:
rpi-master-node/k3s-manifests/disk-fill-demo.yaml(service 노드에 스케줄) - 노드 로컬 수집기: node-exporter(prometheus scrape), promtail(loki push)
- K8s 매니페스트:
Notes
- 디스크 채우기 데모 컨테이너에는
fill_disk_safe.sh,cleanup_disk.sh등이 포함되어 있으며,kubectl exec로 실행합니다(명령은 조직 README 또는rpi-master-nodeREADME 참고).
Description