| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 쿠버네티스
- 쿠버네티스 컴포넌트
- Prometheus install
- grafana on kubernetes
- kubernetes 동작 원리
- 딥레이서
- helm
- headless service
- jenkins
- SAA 합격 후기
- 로드밸런서 컨트롤러
- blue-green
- 그라파나 시각화
- Kubernetes
- 그라파나 대시보드
- 메탈LB
- Solution Architecture
- 깃허브 액션
- AWS 딥레이서
- Aurora cluster
- EFS CSI Driver
- 솔데스크
- EKS 클러스터
- livenessPorbe
- Kubernets on Jenkins
- 딥레이서 보상함수
- Firelens
- github action 사용법
- terraform
- LoadBalancer Controller
mingming
NetBackup Kubernetes 백업 본문
1) 사전 준비
- NetBackup 버전 호환성 확인(Operator 지원 버전). (Veritas 다운로드 포털 / 문서 확인)
- kubectl과 helm 사용 가능, 클러스터 Admin 권한 보유
- 컨테이너 레지스트리 (이미지 Push 권한)
- 네트워크: Kubernetes 노드 → NetBackup Primary / Media 서버간 통신 (기본 PBX 1556 등 포트 열기). NetBackup은 클라이언트 → 서버 방향으로 PBX(기본 1556) 포트 통신을 사용합니다. (MSDP 등 추가 포트는 기능에 따라 필요).
- 스토리지: PV를 스냅샷으로 만들 수 있는 StorageClass / VolumeSnapshotClass(CSI) 필요(복구 시 필수).
2) 패키지/이미지 준비
- Veritas NetBackup Kubernetes 패키지(예: netbackupkops-<ver>.tar.gz)와 datamover 이미지 파일을 다운로드. Helm 차트 및 이미지가 포함되어 있습니다.
- (로컬에서) 이미지를 레지스트리에 등록
# 예시: tar에서 이미지 로드 -> 태깅 -> push
docker load -i veritasnetbackup-datamover-10.3.tar
docker tag veritasnetbackup-datamover:10.3 my-registry.example.com/veritas/datamover:10.3
docker push my-registry.example.com/veritas/datamover:10.3
Helm 차트 위치(예: netbackupkops-helm-chart)를 작업 디렉토리에 준비. values.yaml을 편집할 준비.
(참고: 레지스트리가 사설이면 imagePullSecret 생성 필요.)
Netbackup Helm 차트 구조
netbackupkops-helm-chart/
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ └── _helpers.tpl
└── values.yaml
3) Kubernetes 전제 작업 (네임스페이스/이미지풀시크릿/서비스어카운트/RBAC)
네임스페이스 생성
kubectl create namespace netbackup
이미지 풀 시크릿 (사설 레지스트리용)
kubectl create secret docker-registry nb-regcred \
--docker-server=my-registry.example.com \
--docker-username=myuser --docker-password='mypassword' \
-n netbackup
4) NetBackup (Primary Server)에서 토큰/인증키 생성 & 시크릿 생성
- NetBackup Web UI 또는 CLI에서 Kubernetes용 인증 토큰(API key) 을 생성합니다. NetBackup Operator는 이 토큰(또는 API key)과 Primary 서버의 인증서 지문(fingerprint)을 사용해 안전하게 통신합니다.
- Kubernetes에 넣을 시크릿 예시:
apiVersion: v1
kind: Secret
metadata:
name: netbackup-nb-config-deploy-secret
namespace: netbackup
type: Opaque
stringData:
apikey: "생성한-API-키-값"
k8scacert: |
kubectl apply -f nb-config-deploy-secret.yaml -n netbackup
주의: NetBackup 가이드에 따라 토큰은 Base64 인코딩 / fingerprint 포함 등 요구사항이 있으니, 문서의 예시를 그대로 따라야 합니다. (토큰/지문 생성 및 사용 절차는 관리자 가이드를 참고하세요).
5) Volume Snapshot Contorller 설치
1. CRD 배포
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/refs/heads/release-8.2/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/refs/heads/release-8.2/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/refs/heads/release-8.2/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml
2. Volume Snapshot Controller 배포
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/refs/heads/release-8.2/deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/refs/heads/release-8.2/deploy/kubernetes/snapshot-controller/rbac-snapshot-controller.yaml
3. Volume Snapshot Class 배포
# vsc.yaml
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: csi-aws-vsc
driver: ebs.csi.aws.com
deletionPolicy: Delete
kubectl apply -f vsc.yaml
6) Helm values.yaml 설정
netbackupkops-helm-chart/values.yaml 주요 항목
netbackupkops:
containers:
manager:
image: "netbackupkopsimage:10.5.1"
resources:
limits:
cpu: 150m
memory: 600Mi
requests:
cpu: 100m
memory: 500Mi
kopsPvcStorageClass:
kopsPvcSize: 10Gi
pvMountPath: /usr/openv
imagePullSecrets: []
# Example to add imagePullSecrets
# imagePullSecrets:
# - name: netbackupkops-docker-cred
fipsMode: DISABLE
acceleratorTracklogPvcStorageClass: None
minSizeForAcceleratorTracklogPvc: 50Mi
hostAliases:
- hostnames:
- netbackup-master.local.com
ip: 10.70.1.151
nbsetup:
replicas: 1
containers:
netbackup_config_pod:
nbprimaryserver: netbackup-master.local.com
nbsha256fingerprint: "netbackup-fingerprint"
k8sCluster: "k8scluster-url"
k8sPort: 443
datamoverimage: "datamoverimage:10.5.0.1"
logLevel: INFO
storageclassblock: gp3
volumesnapshotclassblock: csi-aws-vsc
storageclassfilesystem:
volumesnapshotclassfilesystem:
storageMap:
gp3:
snapshotClass: csi-aws-vsc
storageClassForBackupDataMovement: gp3
storageClassForRestoreFromBackup: gp3
(버전에 따라 netbackupKops 또는 netbackupConfig 등 키명 차이가 있을 수 있으니 values.yaml 기본 파일을 확인해서 복사·수정하세요.)
7) Helm으로 설치
# 로컬 차트 경로로 설치 예시
helm install nb-kops ./netbackupkops-helm-chart -n netbackup --values ./my-values.yaml
# 상태 확인
helm status nb-kops -n netbackup
kubectl get pods -n netbackup
kubectl describe pod <pod-name> -n netbackup
kubectl logs <pod-name> -n netbackup
설치 중 chart가 operator pod, config pod, datamover pod 등을 생성합니다. 배포가 완료되면 NetBackup Web UI에서 “클러스터 추가(Add Cluster)” 절차를 밟아 클러스터를 등록합니다. 등록할 때 operator가 제공하는 토큰/지문 정보를 이용합니다.
8) 설치 검증(핵심 체크포인트)
- kubectl get pods -n netbackup — 모든 관련 Pod가 Running 상태인지 확인
- kubectl logs <operator-pod> -n netbackup — 에러/예외 로그 확인
- NetBackup Web UI: 클러스터가 ‘연결(Connected)’ 상태인지, 자동 자원탐지(autodiscovery)가 정상 동작하는지 확인
- 샘플 백업 실행(예: NetBackup에서 생성한 K8s 용 Policy로 테스트 백업) 및 복구(restore) 시나리오 테스트
- PV snapshot 생성/복구가 제대로 동작하는지 확인 — 이는 스토리지 드라이버(CSI)와 밀접하므로 미리 확인해야 합니다.
9) 자주 발생하는 문제 & 해결 팁
- 이미지 Pull 실패: imagePullSecrets 누락 또는 레지스트리 인증 오류 → kubectl describe pod / 이벤트 확인
- RBAC 권한 오류: Operator가 CRD 또는 VolumeSnapshot 접근 권한이 없을 때 발생 → 필요한 권한 추가(ClusterRole 수정)
- 토큰/인증서 관련 에러: 토큰 값의 포맷(Base64 등) 또는 Primary 서버의 인증서 지문(fingerprint) 불일치 → 시계(Clock skew)도 확인 필요(토큰/증명서 유효성에 영향).
- NetBackup과 통신 불가: 방화벽(1556) 차단, DNS 불일치, 호스트명 해석 문제 → bpclntcmd(클라이언트 유틸)로 NetBackup 관점의 네트워크 상태 확인.
10) (참고) 전통적인 NetBackup 클라이언트 에이전트 설치 — Linux / Windows (간단 요약)
Kubernetes 외에 개별 노드(예: VM/베어메탈)의 NetBackup 클라이언트를 설치할 때는 NetBackup 설치 이미지(ESD/DVD)를 내려받아 로컬 설치 또는 Master에서 push 방식으로 설치할 수 있습니다. UNIX/Linux는 ./install 스크립트 기반 설치, Windows는 Browser.exe 또는 설치 마법사/무인 설치 방식이 제공됩니다. 설치 후 NetBackup 서비스 시작/정지 명령(bpup, nbstop 등)과 bpclntcmd로 연결 상태를 확인합니다.
빠른 명령 모음
# 네임스페이스
kubectl create ns netbackup
# registry credential (사설 레지스트리)
kubectl create secret docker-registry nb-regcred --docker-server=... --docker-username=... --docker-password=... -n netbackup
# API token secret (예시)
kubectl create secret generic nb-config-deploy-secret --from-literal=apikey='PASTE_API_KEY' -n netbackup
# Helm 설치
helm install nb-kops ./netbackupkops-helm-chart -n netbackup --values ./my-values.yaml
# 상태 확인
kubectl get pods -n netbackup
helm status nb-kops -n netbackup
kubectl logs -n netbackup <operator-pod>
참고(주요 근거 문서)
- NetBackup Kubernetes Installation and Configuration Guide.
- NetBackup for Kubernetes Administrator's Guide (토큰/secret, 업그레이드 지침).
- Installing NetBackup using Helm charts (Helm/차트 관련 지침).
- NetBackup Network Ports Reference Guide (포트/방화벽).
- About NetBackup client installation on UNIX and Linux (클라이언트 설치 방법 요약).