1. 주요 목적

 1.1. MySQL 데이터 저장소를 호스트 디렉토리에 저장

  • MySQL 컨테이너의 데이터 디렉토리(/var/lib/mysql)를 호스트 머신의 /mysql 경로에 마운트
  • hostPath로 설정하여, 컨테이너가 삭제되더라도 호스트에 데이터가 남아 지속성을 보장

 1.2. MySQL 컨테이너 실행

  • MySQL 이미지를 사용하여 m1이라는 이름의 컨테이너를 실행
  • env 변수 설정을 통해 MySQL의 루트 비밀번호, 기본 데이터베이스, 외부 접근 설정 등을 지정

 1.3. hostPath 볼륨

  • 호스트 머신의 /mysql 경로를 Pod 내로 마운트
  • type : DirectoryOrCreate를 사용해 경로가 없으면 자동으로 생성

 

2. 활용 목적

  • 데이터 지속성: MySQL 데이터가 컨테이너 외부에 저장되도록 설정하여, 컨테이너 재배포 시 데이터 손실 방지
  • 테스트 및 학습용: Kubernetes 환경에서 간단한 MySQL Pod를 배포하고 데이터 관리를 실험적으로 테스트

 

3. 세부 방법 

 3.1. yml 설정 : vi pod-mysql.yml 

apiVersion: v1
kind: Pod
metadata:
  name: pod-mysql
  labels:
    app: mysql
spec:
  containers: node1
  - name: m1
    image: mysql
    imagePullPolicy: Never
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: It12345!
    - name: MYSQL_DATABASE
      value: wordpress
    - name: MYSQL_ROOT_HOST
      value: "%"
    volumeMounts:
    - mountPath: /var/lib/mysql
      name: behwang-mysql

  volumes:
  - name: behwang-mysql
    hostPath:
      path: /mysql
      type: DirectoryOrCreate


 3.2. yml 실행 : kubectl apply -f pod-mysql.yml 
 3.3. mysql 접속 : mysql -uroot -pIt12345! -h 192.168.104.51

+ Recent posts

# 드래그 금지