고양이와 코딩

쿠버네티스 클러스터 CrashLoopBackOff 에러 해결 본문

데브코스 TIL

쿠버네티스 클러스터 CrashLoopBackOff 에러 해결

ovovvvvv 2024. 3. 25. 21:57
728x90
kubectl create namespace db
kubectl apply ‒f notes-db-volume.yaml 
kubectl apply ‒f note-db.yaml

위 명령어를 전부 실행하고 

mysql --protocol tcp ‒P 30036 ‒u root ‒p < init-user.sql
mysql --protocol tcp ‒P 30036 ‒u root ‒p < init-db.sql

mysql --protocol tcp –P 30036 –u prgms -p

초기화 파일을 적용하려고 하는데, 반복적으로  에러가 발생했습니다

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0

 

원인을 찾다가 pod의 상태가 이상한것을 발견했습니다!

CrashLoopBackOff

 

 

kubectl describe pod notes-db-795546676c-rr9hv -n db
// 에러 로그 확인

로그를 살펴봤을 때 MariaDB 서버가 시작되지만 데이터베이스 파일을 초기화하는 동안 오류가 발생하여 시스템 테이블을 설치하지 못했다는 것을 알 수 있었습니다.

그 결과, InnoDB 스토리지 엔진이 초기화되지 않았고, 이로 인해 MariaDB가 종료됩니다.

 

brew unlink mysql mariadb-connector-c
brew install mariadb

 

mariadb 설치 중 오류가 발생하여 mariadb를 찾을 수 없다고 했기 때문에 mariadb-connector-c를 unlink 한 뒤, 
재설치합니다!

그리고 나서 Docker Desktop을 열어서 

  1. 메뉴 -> Preferences (환경설정) 으로 이동
  2. Resources (자원) 으로 이동
  3. File Sharing (파일 공유) 아래 디렉토리 목록에 /Desktop/document-editor/data (yaml 파일이 들어있는 경로)를 추가합니다
  4. 변경사항을 저장하고 Docker 재시작

 

mysql --protocol tcp ‒P 30036 ‒u root ‒p < init-user.sql
mysql --protocol tcp ‒P 30036 ‒u root ‒p < init-db.sql

이후 다시 터미널에서 두 명령어를 입력하면 아래와 같이 설정이 되는데요, 

mysql --protocol tcp –P 30036 –u prgms -p

데이터베이스 구성 확인 명령어를 입력하자 또 다음과 같은 오류가 발생했습니다!

 

 

 

결국 Docker Desktop -> 환경설정 -> Kubernetes -> Reset Kubernetes Cluster 

여기까지는 된 것 같습니다. 

 

mysql --protocol tcp -P 30036 -u prgms -p

확인 과정에서 password 오류가 발생해서 host부터 확인했습니다. 

HOST관련 문제는 아님을 확인할 수 있습니다.