Agent 클러스터
최종 수정: 2026. 1. 23.
Agent 클러스터 설치
모니터링 대상 클러스터에 Skuber+ Observability Agent를 설치하는 방법을 안내합니다.
개요
Agent Cluster는 메트릭, 로그, 트레이스를 수집하여 Host Cluster로 전송하는 역할을 합니다.
설치되는 컴포넌트
| 순서 | 컴포넌트 | 타입 | 역할 |
|---|---|---|---|
| 1 | OTel Collector Agent | DaemonSet | 노드별 메트릭, 로그 수집 |
| 2 | OTel Collector Agent | Deployment | 클러스터 메트릭, 이벤트 수집 |
| 3 | APM Agent | DaemonSet | eBPF 기반 자동 계측 (트레이스, 네트워크 플로우) |
| 4 | kube-state-metrics | Deployment | Kubernetes 상태 메트릭 수집 |
| 5 | OpenTelemetry Operator | Deployment | 자동 계측 컨트롤러 |
| 6 | Instrumentation CRD | CRD | 다중 언어 자동 계측 리소스 |
아키텍처
컴포넌트 역할:
| 컴포넌트 | 타입 | 수집 데이터 |
|---|---|---|
| OTel Collector | DaemonSet | hostmetrics, kubeletstats, filelog |
| OTel Collector | Deployment | kube-state-metrics, k8s_cluster, k8sEvents |
| APM Agent | DaemonSet | eBPF 네트워크 플로우, HTTP/gRPC 트레이싱 |
| kube-state-metrics | Deployment | Kubernetes 리소스 상태 |
| OTel Operator | Deployment | 자동 계측 (Java, Python, Node.js 등) |
사전 요구사항
필수 사항
- Host Cluster 설치 완료 및 Gateway IP 확인
- Agent Cluster에 대한 kubectl 접근 권한
- Linux 커널 5.8+ (eBPF 자동 계측 지원)
Host Gateway IP 확인
Agent 설치 전 Host Cluster의 Gateway IP를 확인합니다:
# Host Cluster 컨텍스트에서 실행
kubectl config use-context <host-cluster-context>
kubectl get svc otel-collector-gateway -n skuber-observability \
-o jsonpath='{.status.loadBalancer.ingress[0].ip}'출력된 IP를 기록합니다 (예: 192.168.254.246).
네트워크 연결 확인
Agent Cluster에서 Host Gateway로 연결 가능한지 확인합니다:
# Agent Cluster 컨텍스트에서 실행
kubectl config use-context <agent-cluster-context>
kubectl run test --rm -it --image=busybox -- \
wget -O- --timeout=5 http://<host-gateway-ip>:4317설치 방법
설치 스크립트 다운로드
curl -O https://install.skuberplus.com/o11y-agent-install.sh
chmod +x o11y-agent-install.sh스크립트 실행
./o11y-agent-install.sh \
--cluster-context <agent-cluster-context> \
--host-lb-ip <host-gateway-ip> \
--cluster-name <cluster-name> \
--environment <environment>파라미터 설명:
| 파라미터 | 필수 | 설명 | 예시 |
|---|---|---|---|
--cluster-context |
✅ | Agent 클러스터의 kubectl 컨텍스트 | flash-cluster-1 |
--host-lb-ip |
✅ | Host Cluster OTel Gateway IP | 192.168.254.246 |
--cluster-name |
✅ | 클러스터 식별 이름 | production-cluster-1 |
--environment |
✅ | 배포 환경 | dev, staging, prod |
--namespace |
❌ | 설치 네임스페이스 (기본: skuber-observability) |
monitoring |
--dry-run |
❌ | 실제 설치 없이 검증만 수행 | - |
--verbose |
❌ | 상세 로그 출력 | - |
사용 예시:
# 개발 환경 설치
./o11y-agent-install.sh \
--cluster-context flash-cluster-1 \
--host-lb-ip 192.168.254.246 \
--cluster-name flash-cluster-1 \
--environment dev
# 프로덕션 환경 설치 (상세 로그)
./o11y-agent-install.sh \
--cluster-context prod-cluster \
--host-lb-ip 10.0.0.100 \
--cluster-name production \
--environment prod \
--verbose
# Dry-run (검증만)
./o11y-agent-install.sh \
--cluster-context test-cluster \
--host-lb-ip 172.16.0.50 \
--cluster-name test-env \
--environment staging \
--dry-run설치 확인
파드 상태 확인
kubectl --context=<agent-context> get pods -n skuber-observability정상 설치 시 출력:
NAME READY STATUS RESTARTS AGE
skuber-k8s-infra-otel-agent-xxxxx 1/1 Running 0 2m
skuber-apm-agent-xxxxx 1/1 Running 0 2m
skuber-apm-agent-yyyyy 1/1 Running 0 2m
kube-state-metrics-xxxxx 1/1 Running 0 2m
opentelemetry-operator-xxxxx 1/1 Running 0 2mDaemonSet 상태 확인
kubectl --context=<agent-context> get daemonset -n skuber-observabilityNAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE
skuber-k8s-infra-otel-agent 3 3 3 3 3
skuber-apm-agent 3 3 3 3 3로그 확인
# OTel Collector 로그
kubectl --context=<agent-context> logs -n skuber-observability \
-l app.kubernetes.io/name=k8s-infra --tail=50
# APM Agent 로그
kubectl --context=<agent-context> logs -n skuber-observability \
-l app.kubernetes.io/name=skuber-apm-agent --tail=50데이터 확인
Host Cluster UI에서 확인
- Host Cluster UI에 접속 (
http://<host-ui-ip>:8080) - 좌측 메뉴에서 Infrastructure > Kubernetes 클릭
- 상단 필터에서 설치한 클러스터 선택
- 노드 및 파드 메트릭 확인
Service Map 확인
- 좌측 메뉴에서 Service Map 클릭
- 클러스터 필터에서 새로 설치한 클러스터 선택
- 서비스 간 연결이 표시되면 정상 (트래픽 발생 후 몇 분 소요)
로그 확인
- 좌측 메뉴에서 Logs 클릭
- 쿼리 입력:
k8s.cluster.name:<cluster-name> - 파드 로그가 수집되는지 확인
자동 계측 활성화
설치 후 자동 계측을 활성화하려면 파드에 어노테이션을 추가합니다.
Namespace 전체 활성화
apiVersion: v1
kind: Namespace
metadata:
name: my-app
annotations:
instrumentation.opentelemetry.io/inject-java: "true"
instrumentation.opentelemetry.io/inject-python: "true"
instrumentation.opentelemetry.io/inject-nodejs: "true"개별 Deployment 활성화
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-java-app
spec:
template:
metadata:
annotations:
instrumentation.opentelemetry.io/inject-java: "true"지원 언어
| 언어 | 어노테이션 |
|---|---|
| Java | instrumentation.opentelemetry.io/inject-java: "true" |
| Python | instrumentation.opentelemetry.io/inject-python: "true" |
| Node.js | instrumentation.opentelemetry.io/inject-nodejs: "true" |
| .NET | instrumentation.opentelemetry.io/inject-dotnet: "true" |
| Go | instrumentation.opentelemetry.io/inject-go: "true" |
추가 클러스터 연결
다른 클러스터를 추가로 연결하려면 동일한 설치 과정을 반복합니다:
# 두 번째 클러스터
./o11y-agent-install.sh \
--cluster-context second-cluster \
--host-lb-ip 192.168.254.246 \
--cluster-name second-cluster \
--environment prod
# 세 번째 클러스터
./o11y-agent-install.sh \
--cluster-context third-cluster \
--host-lb-ip 192.168.254.246 \
--cluster-name third-cluster \
--environment prod모든 클러스터는 동일한 Host Gateway IP를 사용합니다.
문제 해결
Host로 연결 실패
증상: OTel Collector 로그에 연결 오류 표시
kubectl logs -n skuber-observability -l app.kubernetes.io/name=k8s-infra | grep -i error해결 방법:
Host Gateway IP 확인:
kubectl --context=<host-context> get svc otel-collector-gateway \ -n skuber-observability -o wide네트워크 연결 테스트:
kubectl run test --rm -it --image=busybox -- \ wget -O- --timeout=5 http://<host-gateway-ip>:4317방화벽에서 4317, 4318 포트 허용 확인
APM Agent가 데이터를 수집하지 않음
증상: Service Map에 서비스가 표시되지 않음
해결 방법:
커널 버전 확인:
uname -r # 5.8 이상이어야 함APM Agent 파드 로그 확인:
kubectl logs -n skuber-observability -l app.kubernetes.io/name=skuber-apm-agent권한 확인 (privileged 모드 필요):
kubectl describe daemonset skuber-apm-agent -n skuber-observability | grep -A5 "Security Context"
메트릭이 보이지 않음
증상: Infrastructure 화면에 데이터 없음
해결 방법:
kube-state-metrics 파드 상태 확인:
kubectl get pods -n skuber-observability -l app.kubernetes.io/name=kube-state-metricsOTel Collector 설정 확인:
kubectl get configmap -n skuber-observability k8s-infra -o yaml
다음 단계
- 자동 계측 - 상세 자동 계측 가이드