Kubernetes:Basic:Wordpress
k3s가 설치된 상태로 워드프레스 시작하기.
초기 상태
$ kubectl get all
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 67d
spec
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
실행 및 상태 확인
apply
명령으로 spec을 적용한다.
$ kubectl apply -f wordpress-k8s.yml
deployment.apps/wordpress-mysql created
service/wordpress-mysql created
deployment.apps/wordpress created
service/wordpress created
상태를 확인해 보면 다음과 같다:
$ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/wordpress-mysql-5ffb97c5b6-qpztz 1/1 Running 0 6s
pod/wordpress-65d4c96dcc-52fds 1/1 Running 0 6s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 67d
service/wordpress-mysql ClusterIP 10.43.129.163 <none> 3306/TCP 6s
service/wordpress NodePort 10.43.170.155 <none> 80:31644/TCP 6s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/wordpress-mysql 1/1 1 1 6s
deployment.apps/wordpress 1/1 1 1 6s
NAME DESIRED CURRENT READY AGE
replicaset.apps/wordpress-mysql-5ffb97c5b6 1 1 1 6s
replicaset.apps/wordpress-65d4c96dcc 1 1 1 6s
service/wordpress
의 80번 포트가 외부로 Expose 된 포트를 확인한 후 localhost:31644
주소로 접속하면 정상적으로 워드 프레스 화면이 출력된다.