수동 삭제
최종 수정: 2026. 4. 14.
Skuber Agent 수동 삭제 가이드
개요
설치 중 실패하거나 비정상 상태가 된 클러스터에서 Skuber 리소스를 수동으로 정리합니다.
어디까지 설치되었는지 모르는 상황에서 사용하며, 존재하지 않는 리소스는 에러 없이 건너뛰고 존재하는 리소스만 삭제합니다.
사전 요구사항
- 대상 클러스터에 대한
kubectl접근 권한 (cluster-admin) - Uninstaller 이미지 버전 (Skuber 담당자 확인)
삭제 대상 리소스
Uninstaller가 정리하는 리소스 범위입니다.
skuber-system Namespace
| 종류 | 리소스 |
|---|---|
| Deployment | agent, agent-controller, vpa-recommender |
| DaemonSet | k8s-ebpf-l4l7-metrics |
| Service | agent-svc, agent-metrics |
| ServiceAccount | agent, agent-controller, vpa-recommender, k8s-ebpf-l4l7-metrics |
| ConfigMap | descheduler-policy-v1alpha2 |
| Role / RoleBinding | system:leader-locking-vpa-recommender |
| Helm Release | keda, keda-http-addon, victoria-metrics-operator, kube-state-metrics, prometheus-node-exporter, karpenter, nginx |
| Custom Resource | VMSingle, VMAgent, VMServiceScrape, VMNodeScrape, VMPodScrape, ScaledObject 등 |
| Namespace 자체 | skuber-system (최종 단계에서 삭제) |
Cluster-Scoped
| 종류 | 리소스 |
|---|---|
| CRD (8개) | clusters/workloads/backupclusters/backupworkloads/nodes/schedules.agent.skuberplus.com, verticalpodautoscalers/verticalpodautoscalercheckpoints.autoscaling.k8s.io |
| ClusterRole | skuber-plus-cluster-role, agent, agent-controller, k8s-ebpf-l4l7-metrics, system:vpa-actor, system:vpa-status-actor, system:vpa-checkpoint-actor, system:vpa-target-reader, system:metrics-reader |
| ClusterRoleBinding | 위 ClusterRole에 대응하는 Binding + skuber-plus-cluster-role-binding |
| KEDA | ScaledObject/ScaledJob/TriggerAuthentication CRD, APIService, Webhook |
kube-system Namespace (조건부)
Skuber가 직접 설치한 Metrics-Server만 삭제합니다 (annotation skuber.io/metrics-server-managed=true 기준).
기존에 있던 Metrics-Server는 삭제하지 않습니다.
| 종류 | 리소스 |
|---|---|
| Deployment | metrics-server |
| Service | metrics-server |
| ServiceAccount | metrics-server |
| RoleBinding | metrics-server-auth-reader |
| ClusterRole | system:metrics-server, system:aggregated-metrics-reader |
| ClusterRoleBinding | metrics-server:system:auth-delegator, system:metrics-server |
| APIService | v1beta1.metrics.k8s.io |
실행 방법
1. 매니페스트 수령
Skuber 담당자에게 Uninstaller 매니페스트 파일(skuber-uninstaller-job.yaml)과 릴리즈 버전을 전달받습니다.
2. 배포
kubectl apply -f skuber-uninstaller-job.yaml3. 로그 확인
kubectl logs -f job/skuber-uninstaller -n kube-system4. 완료 확인
# Job 상태 확인
kubectl get job skuber-uninstaller -n kube-system
# skuber-system namespace 삭제 확인
kubectl get ns skuber-system삭제 후 정리
정상 완료 시 Job은 TTL(300초) 후 자동 정리됩니다.
# Job이 TTL 후 자동 삭제되지 않았다면
kubectl delete job skuber-uninstaller -n kube-system --ignore-not-found
kubectl delete clusterrolebinding skuber-uninstaller --ignore-not-found
kubectl delete sa skuber-uninstaller -n kube-system --ignore-not-found트러블슈팅
Namespace가 Terminating 상태에서 멈추는 경우
Uninstaller는 자동으로 Finalizer를 제거하고 force-finalize를 시도합니다.
3회 재시도 후에도 해결되지 않으면 수동으로 확인합니다.
# Terminating 원인 확인
kubectl get ns skuber-system -o json | jq '.status.conditions'
# 남아있는 리소스 확인
kubectl api-resources --verbs=list --namespaced -o name | xargs -I {} kubectl get {} -n skuber-system --ignore-not-foundJob이 반복 실패하는 경우
# Pod 로그 확인
kubectl logs -l app.kubernetes.io/name=skuber-uninstaller -n kube-system --tail=100
# Job 이벤트 확인
kubectl describe job skuber-uninstaller -n kube-system