위키의 구조
이 위키는 쿠버네티스 위에서 동작하는데, 어떤 식으로 동작하는지 적어보자.
기존 구조
기존에는 odroid-u2 + docker + openvswitch 를 사용해서 동작했다. 도커 이미지는 직접 만들었는데 alpine + php7* + lighttpd로 구성했고, 프로세스 관리를 위해 s6를 사용하였다. 도쿠위키가 설치된 경로는 volume으로 지정하여 따로 관리하는 중이었다.
현재 구조
쿠버네티스 위에서 동작하는 이 위키는 직접 구성한 이미지가 아닌 crazymax/dokuwiki를 사용하여 구성한다. 이전 위키의 내용은 이미 볼륨을 관리하고 있었으므로 해당 볼륨의 내용만 (약 30MB정도) 새로운 pvc에 복사하였다.
간단한 deployment를 작성했는데 내용은 다음과 같다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: w-wiki
labels:
app: w.cublr.com
spec:
replicas: 1
selector:
matchLabels:
app: w.cublr.com
template:
metadata:
labels:
app: w.cublr.com
spec:
containers:
- name: w-wiki
image: crazymax/dokuwiki
ports:
- containerPort: 8000
volumeMounts:
- name: wiki-data
mountPath: /var/www
volumes:
- name: wiki-data
persistentVolumeClaim:
claimName: wiki-volumes