From 23adb0c23461108fadd948168c3840694e8aca66 Mon Sep 17 00:00:00 2001 From: nkey Date: Thu, 22 Jan 2026 11:37:11 +0900 Subject: [PATCH] Worker-Service-Node Stack & README --- README.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..9b28898 --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +# rpi-worker-service-node +작성: AI / 수정: nkey + +k3s 클러스터에서 **서비스 워커 노드** 역할을 하는 라즈베리파이입니다. +현재 이 레포는 **코드/설정 파일이 비어있을 수 있으며**, 운영은 주로 k3s 리소스(마스터 레포)와 노드 로컬 설정(node-exporter/promtail 등)으로 구성됩니다. + +## Quickstart +### Recommended +```bash +# (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) +- 노드에 디스크 채우기 데모가 스케줄되도록 라벨(예시) +```bash +# (Master) service 노드에 라벨 부여(디스크 데모는 nodeSelector: demo-service="true" 사용) +kubectl label node rpi-worker-service demo-service=true +``` + +- node-exporter 상태 확인(노드에서) +```bash +sudo systemctl status node_exporter +curl http://localhost:9100/metrics | head +``` + +- promtail 상태 확인(노드에서) +```bash +sudo systemctl status promtail +``` + +## (All nodes) node-exporter, promtail 설치 (수동) +- https://nkeystudy.site/gitea/2025-capstone/rpi-master-node/README.md 참고 + +## 설정 파일 설명 +- 이 레포에는 설정 파일이 포함되어 있지 않습니다. +- 서비스 노드에서 중요한 “설정/구성”은 아래 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 참고).