728x90
<Kubernetes 쿠버네티스 실습 :: MySQL 서버 구축>
1. MySQL 컨테이너 호스팅 포드 파일 제작
<mydata.yaml>
- mydata-pod라는 포드는 k8s-node1 노드에만 스케줄링
- MySQL 데이터베이스를 호스팅하는 Pod 생성
- 데이터는 k8s-node1 노드의 /DATA1/mysql-data 경로에 저장
apiVersion: v1
kind: Pod
metadata:
name: mydata-pod
spec:
nodeSelector:
kubernetes.io/hostname: k8s-node1
containers:
- name: mydata-container
image: mysql:8.0
volumMounts:
- name: host-path
mountPath: /var/lib/mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: "password"
volumes:
- name: host-path
hostPath:
path: /DATA1/mysql-data
type: DirectortOrCreate
[PS C:\\Users\\admin\\Desktop\\k8s-pods> kubectl apply -f mydata.yaml
<생성 확인>
2. MySQL 서버 접속 후 데이터 생성
[PS C:\\Users\\admin\\Desktop\\k8s-pods> kubectl exec -it mydata-pod -- bash
bash-4.4# mysql -uroot -p
<기본 환경>
mysql> show databases;
- 새로운 데이터베이스(k8sdb) 생성
- k8s 테이블 생성 ( "c1"이라는 정수형 열 / "c2"라는 VARCHAR(20) 열로 구성)
- "k8s" 테이블에 (1, 'k8s') 삽입
- "k8s" 테이블에 (2, '****') 삽입
mysql> create database k8sdb;
Query OK, 1 row affected (0.02 sec)
mysql> use k8sdb
Database changed
mysql> create table k8s (c1 int, c2 varchar(20));
Query OK, 0 row affected (0.06 sec)
mysql> insert into k8s values (1, 'k8s');
Query OK, 1 row affected (0.02 sec)
mysql> insert into k8s values (2, '****');
Query OK, 1 row affected (0.02 sec)
mysql> select * from k8s;
<결과 확인>
3. 포드 생성
- k8s-node2 노드에만 스케줄링되는 MySQL 서버 제작
- yaml 파일 복사해 수정을 거친 후 제작
[PS C:\\Users\\admin\\Desktop\\k8s-pods> cp mydate.yaml mydata2.yaml
<mydata2.yaml>
- mydata-pod라는 포드는 노드 k8s-node2에만 스케줄링
- Pod은 MySQL 컨테이너를 호스팅
- 데이터를 "/DATA1/mysql-data" 경로에 저장
apiVersion: v1
kind: Pod
metadata:
name: mydata-pod
spec:
nodeSelector:
kubernetes.io/hostname: k8s-node2
containers:
- name: mydata-container
image: mysql:8.0
volumeMounts:
- name: host-path
mountPath: /var/lib/mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: "password"
volumes:
- name: host-path
hostPath:
path: /DATA1/mysql-data
type: DirectoryOrCreate
<적용>
[PS C:\\Users\\admin\\Desktop\\k8s-pods> kubectl apply -f mydata2.yaml
4. 데이터 공유 확인
- 새로 제작한 포드에 접속해 이전에 제작한 데이터가 남아있는지 확인
[PS C:\\Users\\admin\\Desktop\\k8s-pods> kubectl exec -it mydata-pod -- bash
bash-4.4# mysql -uroot -p
<결과 확인>
mysql> use k8sdb;
Database changed
mysql> select * from k8s;
'클라우드 + DevOps > Kubernetes (k8s)' 카테고리의 다른 글
Kubernetes 쿠버네티스 :: PV, PVC 이해와 활용 (1) | 2024.04.18 |
---|---|
Kubernestes 쿠버네티스 포드 관련 이론 및 유형 정리 (0) | 2024.04.17 |
Kubernetes 쿠버네티스 실습 :: NFS 서버 구축 (0) | 2024.04.16 |
Kubernetes 실습 :: Helm 서비스 이용 (0) | 2024.04.16 |
Kubernetes :: Application Pod 배포 실습 (0) | 2024.04.15 |