추가 테스트 필요
Wordpress - mysql DB 블로그
https://kubernetes.io/ko/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/
<1> NFS 사용을 위한 설정
<2> PV(NFS) 2개 생성
<3> kustomization.yaml 생성
<4> 접속 → 첫글 써보기
<5> 삭제
<6> 정리
<1> NFS 사용을 위한 설정
kubectl create namespace wordpress
k ns wordpress
1
mkdir /nfs4-share
mkdir /nfs4-share2
echo '/nfs4-share *(rw,sync,no_root_squash)' >> /etc/exports
echo '/nfs4-share2 *(rw,sync,no_root_squash)' >> /etc/exports
systemctl restart nfs-server
# nfs 설정 정상 확인
exportfs
exportfs -v
showmount -e 127.0.0.1
ss -tnlp | head -1 ; ss -tnlp | grep 0.0.0.0:2049
yum install install nfs-common -y
<2> PV(NFS) 2개 생성
1
cat <<EOF | kubectl create -f -
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-nfs-pv
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce # ReadWriteOnce RWO (1:1 마운트, 읽기 쓰기)
nfs:
server: 192.168.254.200 # NFS-Server 의 IP
path: /nfs4-share # NFS 저장소
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: wp-nfs-pv
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
nfs:
server: 192.168.254.200 # NFS-Server 의 IP
path: /nfs4-share2 # NFS 저장소
EOF
2
nfs 서버를 worker ip 로 해봄.
쿠버네티스의 경우 master node ip 로 테스트 함.
NfsServerIP=10.0.0.20
cat <<EOF | kubectl create -f -
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-nfs-pv
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
nfs:
server: $NfsServerIP
path: /nfs4-share
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: wp-nfs-pv
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteOnce
nfs:
server: $NfsServerIP
path: /nfs4-share2
EOF
확인
kubectl get pv -o wide
<3> kustomization.yaml 생성
Mysql 파드의 시크릿 생성 정보 추가 → mysql wordpress yaml 다운로드 → 생성
kustomize 는 자주 사용되는 YAML 파일의 속성을 별도로 정의해 재사용하거나 여러 YAML 파일을 하나로 묶는 등 다양한 용도로 사용할 수 있는 기능
MysqlDbPW=qwe123
mkdir yaml && cd yaml
cat <<EOF >./kustomization.yaml
secretGenerator:
- name: mysql-pass
literals:
- password=$MysqlDbPW
resources:
- mysql-deployment.yaml
- wordpress-deployment.yaml
EOF
curl -LO https://k8s.io/examples/application/wordpress/mysql-deployment.yaml
curl -LO https://k8s.io/examples/application/wordpress/wordpress-deployment.yaml
sed -i 's/type: LoadBalancer/type: NodePort/g' wordpress-deployment.yaml
ls
<4> 접속 → 첫글 써보기
<5> 삭제
삭제
kubectl delete -k ./
kubectl delete pv --all
<6> 정리
감사합니다.