클로드가 문제 찾아주네요. ● 문제를 찾았습니다. prd-generator.md 의 description 필드에 문제가 있어요. 원인: description 안에 \n 리터럴 문자열, 큰따옴표("), XML 태그( )가 뒤섞여 있어 YAML 파싱 오류가 발생합니다. 다른 에이전트들은 간결한 따옴표 문자열을 사용하고 있어요. ● Update(.claude\agents\ prd-generator.md ) ⎿ Added 1 line, removed 1 line 1 --- 2 name: prd-generator 3 -description: Use this agent when you need to create a Product Requirements Document (PRD) for solo developers or small projects. This agent specializes in gen -erating practical, development-ready specifications without corporate complexity. Use it when: starting a new project and need clear requirements, converting -vague ideas into actionable development plans, or documenting features for personal or small-scale projects.\n\nExamples:\n \nContext: User wants to c -reate a PRD for a new todo app project\nuser: "투두 앱을 만들려고 하는데 PRD를 작성해줘"\nassistant: "투두 앱 프로젝트를 위한 PRD를 작성하기 위해 prd-generato -r 에이전트를 실행하겠습니다."\n \nSince the user needs a PRD for their todo app project, use the Task tool to launch the prd-generator agent.\n -mmentary>\n \n \nContext: User has a rough idea and needs structured requirements\nuser: "사용자가 일기를 쓰고 감정을 분석하는 앱을 만들고 싶 -어. 요구사항 정리해줘"\nassistant: "감정 분석 일기 앱의 요구사항을 체계적으로 정리하기 위해 prd-generator 에이전트를 사용하겠습니다."\n \nThe user -needs their app idea converted into structured requirements, so use the prd-generator agent.\n \n 3 +description: "1인 개발자 또는 소규모 프로젝트를 위한 PRD(제품 요구사항 문서)를 생성합니다. 새 프로젝트를 시작할 때, 막연한 아이디어를 실행 가능한 개발 계획으 +로 전환할 때, 기능을 문서화할 때 사용하세요. 예: 'PRD 작성해줘', '요구사항 정리해줘', '기획서 만들어줘'" 4 model: sonnet 5 --- 6
MySQL Kubernetes Deployment 매뉴얼 1. 작업 개요 목표 : MySQL을 Kubernetes 환경(Docker Desktop, Windows)에서 Deployment로 실행하고, rollout 재시작 시에도 데이터가 보존되도록 PVC 기반 영속 스토리지를 구성한다. 문제 상황 : 초기 hostPath 기반 PV/PVC 설정에서 MySQL이 데이터 디렉토리 초기화 실패( Data Dictionary initialization failed ) 발생. 해결 전략 : emptyDir 로 테스트하여 정상 구동 확인 PVC를 기본 StorageClass 기반으로 재구성하여 영속성 확보 2. 시도한 방법 순서 (1) 초기 설정 mysql-deployment.yaml 에서 subPath: data (subPath는 권한해결 방법을 찾다가 추가했던 내용임) 제거 후 실행 → 여전히 데이터 디렉토리 오류 발생. 원인: PVC가 연결된 디렉토리에 MySQL 초기화 파일이 남아 있거나 권한 문제. (2) 디렉토리 정리 호스트 VM 내부에서 /mnt/data/mysql-data 파일 삭제: rm -rf /mnt/data/mysql-data/* 권한 확인: ls -ld /mnt/data/mysql-data stat /mnt/data/mysql-data UID/GID가 999:999 로 설정되어 있음 확인. (3) emptyDir 테스트 Deployment에서 emptyDir 로 /var/lib/mysql 마운트: volumes: - name: mysql-storage emptyDir: {} Pod 상태 확인: kubectl get pods kubectl describe pod 결과: Pod가 Running + Ready 상태로 정상 구동됨. 단점: Pod 재시작 시 데이터 소실. (4) PVC 기반 영속성 설정 기존 리소스 삭제: kubectl delete deployment mysql-deployment kubectl delete pvc mysql-pvc kubectl delete pv mysql-pv PVC 생성 ( storageClassName 제거 → 기본 StorageClass 사용): apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi Deployment 수정 (PVC 연결): volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pvc volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql 적용: kubectl apply -f mysql-pvc.yaml kubectl apply -f mysql-deployment.yaml kubectl apply -f mysql-service.yaml 3. 확인한 내용 Pod 상태: kubectl get pods kubectl describe pod mysql-deployment-xxxx → Running , Ready: True 확인. DBeaver 접속 정보: Host: 127.0.0.1 Port: 30002 Database: kub-practice User: root Password: password123 DB 선택: USE kub_practice; SHOW TABLES; 4. 정상 확인 방법 DBeaver에서 접속 후 SHOW DATABASES; 실행 → kub-practice 확인. 테이블 생성 및 데이터 입력: CREATE TABLE test_table (id INT PRIMARY KEY, name VARCHAR(50)); INSERT INTO test_table VALUES (1, 'hello'); Deployment 재시작: kubectl rollout restart deployment mysql-deployment 다시 DBeaver 접속 후: SELECT * FROM test_table; → 데이터가 그대로 남아 있으면 PVC 기반 영속성 정상 동작. 🚀 최종 결론 emptyDir 로 정상 구동을 확인한 뒤, PVC 기반으로 되돌려서 영속성을 확보하는 방식이 올바른 접근이다. 이제 Deployment를 재배포하거나 rollout restart 해도 데이터가 보존된다.