version: "3"
services:
wordpress:
image: wordpress:5.5.3-apache
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_PASSWORD: password
ports:
- "3000:80"
mysql:
image: mariadb:10.7
environment:
MYSQL_ROOT_PASSWORD: password
docker-compose -d up
컨테이너를 Pod으로 감싸고, 그것을 ReplicaSet으로 감싸고, 그것을 Deployment로 감싼 후 Service 들로 연결하기. 이 구성을 할 수 있으면 쿠버네티스를 할 수 있는 수준
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_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.5.3-apache
name: wordpress
env:
- name: WORDPRESS_DB_HOST
value: wordpress-mysql
- 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
1kubectl apply -f wordpress-k8s.yml
kubectl get all