학습 목표
엣지 컴퓨팅이 중앙 클라우드와 다른 요구(지연·대역·오프라인)를 가지는 이유를 설명할 수 있다.
K3s 등 경량 Kubernetes 배포 모델을 엣지 하드웨어 제약과 연결해 설명할 수 있다.
오프라인·간헐 연결 시 로컬 처리·버퍼·동기화 패턴을 설계할 수 있다.
GitOps·멀티클러스터 패턴을 엣지 클러스터에 적용하는 방식을 설명할 수 있다.
문제 상황
- 공장·매장 센서 — 클라우드 왕복 200ms·대역 비용 폭증
- 선박·광산·농장 — 연결 끊김 수 시간·실시간 제어 필수
- 풀 K8s 엣지 — 4GB RAM 미만 게이트웨이에서 control plane OOM
- 수동 USB 배포 — 버전 드리프트·보안 패치 누락
- 중앙 DB 만 신뢰 — 엣지 캐시 불일치·충돌 미 처리
- 멀티클러스터 DR만 있고 — 현장 지연·오프라인 요구 미 반영
앞서 멀티클러스터 — 리전·DR 단위 확장을 다뤘다. 마지막 편은 유저·데이터 근처의 소형 클러스터(엣지)와 클라우드 허브 간 분산 배포다.
1. 엣지가 필요한 이유
| 요구 | 클라우드 만 | 엣지 추가 |
|---|---|---|
| 지연 | RTT 누적 | 로컬 처리 ms 단위 |
| 대역 | 영상·로그 전송 비용 | 요약·필터 후 업링크 |
| 가용성 | 링크 장애 = 중단 | 오프라인 자율 동작 |
| 규제 | 데이터 외부 반출 | 현장 보관·선택 동기화 |
| 규모 | 수천 사이트 중앙 집중 | 사이트 별 격리 |
엣지 적합: 실시간 제어, 비전 추론, 로컬 집계, intermittently connected
클라우드 적합: 학습, 글로벌 집계, 장기 보관, 복잡 분석
Well-Architected Performance — 워크로드를 데이터 근처로 (18편). Network 시리즈 지연·라우팅과 병행.
2. K3s와 경량 Kubernetes
K3s — Rancher 기반 경량 K8s 배포. 단일 바이너리·내장 containerd·SQLite etcd 대안.

| K8s (EKS 등) | K3s | |
|---|---|---|
| 메모리 | 노드 수 GB | 512MB 급 가능 |
| 설치 | 관리형·kubeadm | curl 한 줄 agent/server |
| 구성 | 전체 control plane | 경량·옵션 제거 |
| 적합 | DC·클라우드 | 엣지·IoT·개발 |
# code/k3s-install.example.sh
curl -sfL https://get.k3s.io | sh -s - server \
--disable traefik \
--write-kubeconfig-mode 644
# edge agent joins server URL + token
curl -sfL https://get.k3s.io | K3S_URL=https://hub.example.com:6443 \
K3S_TOKEN=<token> sh -
| 대안 | |
|---|---|
| MicroK8s | snap·단일 노드 개발 |
| KubeEdge | 클라우드 + 엣지 노드 분리·오프라인 메타 |
| OpenYurt | 엣지 노드 클라우드 통합 스케줄 |
호환 — K3s는 표준 K8s API·kubectl·Helm 사용 (5편 오브젝트 그대로).
3. 엣지-클라우드 토폴로지

| 레이어 | |
|---|---|
| Cloud hub | GitOps·중앙 관측·모델 레지스트리·장기 스토리지 |
| 연결 | VPN·private link·간헐 LTE |
| Edge site | K3s·로컬 워크로드·센서 게이트웨이 |
| 데이터 | 핫 로컬·웜 동기화·콜드 클라우드 |
# code/edge-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: vision-inference
namespace: edge
spec:
replicas: 1
selector:
matchLabels:
app: vision-inference
template:
metadata:
labels:
app: vision-inference
spec:
nodeSelector:
node-role.kubernetes.io/edge: "true"
tolerations:
- key: edge
operator: Equal
value: "true"
effect: NoSchedule
containers:
- name: infer
image: registry.example.com/vision:sha-abc123
resources:
requests:
cpu: 500m
memory: 512Mi
limits:
memory: 1Gi
| 스케줄링 | |
|---|---|
| nodeSelector | 엣지 전용 노드 |
| taint/toleration | 일반 워크로드 유입 방지 |
| DaemonSet | 노드 당 에이전트·수집기 |
| 리소스 한도 | 작은 VM·ARM 보드 현실 반영 |
4. 오프라인과 동기화
간헐 연결 — 엣지가 진실 원천인 구간과 클라우드 집계 구간을 나눈다.

| 패턴 | |
|---|---|
| Store-and-forward | 로컬 큐·S3 버퍼 → 연결 시 업로드 |
| Edge DB | SQLite·로컬 TSDB — 주기 스냅샷 동기화 |
| Config pull | GitOps agent — offline 시 마지막 sync 상태 유지 |
| Conflict | LWW·버전 벡터·도메인 별 단일 writer |
온라인: edge ──metrics/logs──▶ cloud hub
오프라인: edge ──▶ local buffer ──(reconnect)──▶ cloud hub
| 주의 | |
|---|---|
| 멱등 업로드 | 재연결 시 중복 방지 |
| 시계 skew | NTP 또는 논리 시간 |
| 보안 | 버퍼 암호화·디스크 암호화 (8편 Secret) |
| 모델 업데이트 | 에어갭 번들·서명 검증 |
관리형 메시징 — SQS·MQTT 브로커로 엣지 이벤트 흡수 (17편).
5. GitOps와 운영
멀티클러스터 GitOps(20편)를 엣지에 확장 — 사이트 수 많고 연결 불안정.
# code/argocd-edge-application.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: edge-vision-site-42
namespace: argocd
spec:
project: edge
source:
repoURL: https://github.com/org/gitops-manifests
targetRevision: main
path: apps/vision/overlays/site-42
destination:
name: edge-site-42
namespace: edge
syncPolicy:
syncOptions:
- ApplyOutOfSyncOnly=true
retry:
limit: 5
backoff:
duration: 30s
factor: 2
| 엣지 GitOps | |
|---|---|
| Overlay per site | 카메라 ID·로케일 만 다름 |
| Retry backoff | 간헐 API 대응 |
| OCI 번들 | 에어갭 — USB·로컬 레지스트리 |
| 버전 핀 | 현장 검증 후 승격 |
관측 — 엣지 로컬 Prometheus·버퍼 → 연결 시 remote write (6_Observability). 알람은 현장 임계 로컬 처리 + 클라우드 집계.
6. 트레이드오프와 체크리스트
| 엣지 채택 | 중앙 유지 |
|---|---|
| ms 지연·오프라인 필수 | 단일 DC·안정 링크 |
| 사이트 100+ 독립 | 운영 인력 부족 |
| 데이터 현장 체류 규제 | 글로벌 단일 뷰 만 필요 |
| 항목 | 권장 |
|---|---|
| 하드웨어 | ARM·디스크 여유·fanless 열 설계 |
| K8s | K3s 또는 관리 엣지 플랫폼 — 풀 control plane 지양 |
| 이미지 | 로컬 레지스트리·미러 — pull 실패 대비 |
| 오프라인 | 버퍼 용량·보존 정책 명시 |
| 보안 | mTLS·디스크 암호화·물리 접근 통제 |
| 테스트 | 링크 차단 카오스 드릴 |
7. 정리
- 엣지 — 지연·대역·오프라인·데이터 현장 체류
- K3s — 경량 K8s로 소형 사이트 운영
- 동기화 — 버퍼·충돌 정책·GitOps retry
- 클라우드 허브 + 엣지 많음 — 20편 멀티클러스터 패턴 확장
다음에 다룰 것
- 플랫폼 · DevOps · Cloud 시리즈 에필로그 — 개념 정리·확장·학습 경로
해당 내용은 K3s Documentation 및 Production Kubernetes 의 내용을 기반으로 합니다.
'플랫폼, 데브옵스와 클라우드' 카테고리의 다른 글
| Platform Series를 마치며 (0) | 2026.07.09 |
|---|---|
| 멀티클러스터 (0) | 2026.07.07 |
| 서비스 메시 (0) | 2026.07.06 |
| Well-Architected (0) | 2026.07.05 |
| 관리형 서비스 (1) | 2026.07.04 |