4.2. 자주 사용하는 명령어
본 장은 일상 운영 중 가장 자주 사용하는 명령어를 빠르게 찾아볼 수 있도록 카테고리별로 정리한 치트시트입니다. 각 명령어의 상세 설명은 4.1. OPENMARU COP CLI와 3.1. OPENMARU COP 운영절차를 참고하십시오.
프로젝트 관리
프로젝트 생성
kubectl create namespace <namespace>
kubectl label namespace <namespace> pod-security.kubernetes.io/enforce=restricted
프로젝트 확인
# 전체 네임스페이스 목록
kubectl get namespaces
# 특정 네임스페이스 상세
kubectl describe namespace <namespace>
# 네임스페이스 내 전체 리소스 개요
kubectl get all -n <namespace>
# 네임스페이스별 리소스 쿼터/사용량
kubectl describe resourcequota -n <namespace>
애플리케이션 관리
ℹ️ 참고: 소스 빌드는 S2I(Source-to-Image) CLI로, 빌드 자동화는 Jenkins Job으로 수행합니다. 상세 절차는 3.1. OPENMARU COP 운영절차 > 애플리케이션 빌드/배포와 COP 빌드/배포 가이드 참고.
S2I 빌드 및 Jenkins Job 실행
# S2I 직접 빌드
s2i build <소스_위치> <빌더_이미지> <결과_이미지>:<태그>
docker push registry.{sub_domain}.{domain}.{TLD}:8443/apps/<이미지명>:<태그>
# Bastion 스크립트로 빌드→Push→배포 일괄 실행
cd /data/workspaces/apps/<namespace>/<app>
./build-app.sh && ./build-push.sh && ./build-deploy.sh
# 이력 조회 및 롤백
./build-history.sh
./build-rollback.sh <revision>
Jenkins Job으로 실행할 경우: <namespace>-<app>-build(S2I 빌드+Harbor Push) → <namespace>-<app>-deploy(배포). Job 전체 목록은 3.1 장 CI/CD 파이프라인 참고.
애플리케이션 배포
# Helm 배포
helm install <release> openmaru/<chart> -n <namespace> -f values.yaml
helm upgrade <release> openmaru/<chart> -n <namespace> -f values.yaml
helm rollback <release> <revision> -n <namespace>
helm list -A
helm status <release> -n <namespace>
helm history <release> -n <namespace>
# 이미지 태그 갱신(수동 배포)
kubectl set image deployment/<name> <container>=<image>:<tag> -n <namespace>
kubectl rollout status deployment/<name> -n <namespace>
# ArgoCD 동기화(GitOps 배포)
argocd app sync <app-name> --grpc-web
argocd app wait <app-name> --grpc-web
argocd app history <app-name> --grpc-web
⚠️ 주의: ArgoCD(GitOps)로 관리되는 애플리케이션에
helm rollback을 직접 실행하면 안 됩니다. ArgoCD의 auto-sync/self-heal이 즉시 원래 상태로 되돌려 롤백이 무효화됩니다. ArgoCD 관리 앱은 반드시argocd app rollback또는 Git 저장소의 매니페스트를 되돌린 뒤 동기화하는 방식으로 롤백하십시오.
애플리케이션 Volume 설정
kubectl get pvc -n <namespace>
kubectl patch pvc <pvc-name> -n <namespace> \
-p '{"spec":{"resources":{"requests":{"storage":"20Gi"}}}}'