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
'Kubernetes' 카테고리의 다른 글
Kubernetes : PV, PVC (0) | 2024.12.24 |
---|---|
Kubernetes : 호스트 머신 디렉토리 → Pod 내 컨테이너 공유 (0) | 2024.12.24 |
Kubernetes : 컨테이너 간 데이터 공유 (볼륨 활용) (0) | 2024.12.24 |
Kubernetes : 로드밸런싱 (0) | 2024.12.23 |
Kubernetes : 트래픽 라우팅 (Ingress Controller 설정) (1) | 2024.12.23 |