쿠버네티스 실습1 - 워드프레스 배포
첫 번째 실습은 PHP와 MySQL으로 구성된 워드프레스를 쿠버네티스로 배포하는 것이다. 쿠버네티스로 웹 애플리케이션을 배포하는 것은 흔한 작업이라고 한다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: mysql
template:
metadata:
labels:
app: wordpress
tier: mysql
spec:
containers:
- image: mariadb:10.7
name: mysql
env:
- name: MYSQL_DATABASE
value: wordpress
- name: MYSQL_ROOT_PASSWORD
value: password
ports:
- containerPort: 3306
name: mysql
---
apiVersion: v1
kind: Service
metadata:
name: wordpress-mysql
labels:
app: wordpress
spec:
ports:
- port: 3306
selector:
app: wordpress
tier: mysql
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
labels:
app: wordpress
spec:
selector:
matchLabels:
app: wordpress
tier: frontend
template:
metadata:
labels:
app: wordpress
tier: frontend
spec:
containers:
- image: wordpress:5.9.1-php8.1-apache
name: wordpress
env:
- name: WORDPRESS_DB_HOST
value: wordpress-mysql
- name: WORDPRESS_DB_NAME
value: wordpress
- name: WORDPRESS_DB_USER
value: root
- name: WORDPRESS_DB_PASSWORD
value: password
ports:
- containerPort: 80
name: wordpress
---
apiVersion: v1
kind: Service
metadata:
name: wordpress
labels:
app: wordpress
spec:
type: NodePort
ports:
- port: 80
selector:
app: wordpress
tier: frontend
https://subicura.com/k8s/code/guide/index/wordpress-k8s.yml
위 링크의 내용을 가급적 동일한 폴더를 만들어 wordpress-k8s.yml
로 저장하고 다음의 명령어를 실행한다.
# wordpress-k8s.yml 설정 적용
kubectl apply -f wordpress-k8s.yml
배포 상태를 확인한다.
# 현재 상태 확인
kubectl get all
실행 결과 예시
NAME READY STATUS RESTARTS AGE
pod/wordpress-5f59577d4d-8t2dg 1/1 Running 0 103s
pod/wordpress-mysql-545d9c6dc-dwnjp 1/1 Running 0 103s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 7m17s
service/wordpress NodePort 10.107.20.190 <none> 80:31400/TCP 103s
service/wordpress-mysql ClusterIP 10.106.50.61 <none> 3306/TCP 103s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/wordpress 1/1 1 1 103s
deployment.apps/wordpress-mysql 1/1 1 1 103s
NAME DESIRED CURRENT READY AGE
replicaset.apps/wordpress-5f59577d4d 1 1 1 103s
replicaset.apps/wordpress-mysql-545d9c6dc 1 1 1 103s
wordpress-5f59577d4d-8t2dg
와 pod/wordpress-mysql-545d9c6dc-dwnjp
의 Status가 Running
인지 확인하고 service/wordpress
의 포트(여기에선 31400)가 몇 번인지 확인한다.
다음으로 minikube ip
명령어로 주소를 얻은 다음, ip 주소:포트 번호
를 브라우저에 입력해 접속한다.
여기까지 성공했다면, 쿠버네티스 배포에 성공한 것이다!
끝으로 워드프레스 리소스를 제거한다.
kubectl delete -f wordpress-k8s.yml
Reference
Author And Source
이 문제에 관하여(쿠버네티스 실습1 - 워드프레스 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jeongjae96/쿠버네티스-실습1-워드프레스-배포저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)