이 위키는 쿠버네티스 위에서 동작하는데, 어떤 식으로 동작하는지 적어보자.

기존 구조

기존에는 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