배고픈자
@it0951
수강평 작성수
14
평균평점
3.7
게시글
질문&답변
pvc CrashLoopBackOff 문제
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-pvPVC 생성 (storageClassName 제거 → 기본 StorageClass 사용): apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1GiDeployment 수정 (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.1Port: 30002Database: kub-practiceUser: rootPassword: password123DB 선택: 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 해도 데이터가 보존된다.
- 0
- 6
- 120
질문&답변
pvc CrashLoopBackOff 문제
해결했습니다. windows에 설치된 docker.desktop 문제인지는 모르겠으나... 3일동안 ChatGPT,Gemini를 넘나들며 수십번 반복해도 error와 crash났는데. 도커데스크탑을 재설치 해도 마찬가지였어요. 마지막으로 VM에 접속해서 mysql-data 폴더에 퍼미션을 999로 부여하고,mysql-pvc.yaml에서 storageClassName 제거하고apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi mysql-deployment.yaml 에서 volumes: - name: mysql-storage emptyDir: {}empty로 한번 털고 나서 mysql-deployment.yaml 만 강의 내용으로 원복하고 rollout 테스트 해보니 db와 테이블이 남아 있는것을 확인 했습니다. 후속 진도를 진행해보면 완전히 해결된건지 알수 있겠죠.
- 0
- 6
- 120
질문&답변
pvc CrashLoopBackOff 문제
인프런AI가 답하는건 이상황에 아무 도움이 않되요. Gemini나 ChatGPT도 똑같은 답을 하는데 해결않되요. 저도 2일째 여러방법을 적용해봤는데. 아무래도 Docker.desktop을 재설치하는것 밖에 방법이 없는것 같은데. 다시 설치해도 않되면 멘붕올듯 하군요.
- 0
- 6
- 120
질문&답변
진도율 확인 요청
앗. 죄송합니다. 강사님께서 보시는 문의 내용인지 몰랐습니다.
- 1
- 2
- 423




