🖥️

Concrntサーバーの移動

に公開

ConcrntというSNSのお一人用サーバーを立てました。
あらかじめサーバー移動手順を調べてやってみたので、まとめました。

Concrntって何?って方は公式の説明を見てね。

移動元のデータベースのdump

  1. microk8s kubectl get deployments -n concrntで出てくるdeploymentをDB以外すべて止める。
    止めるコマンド:microk8s kubectl scale deployment {deployment名} --replicas=0 -n concrnt
  2. microk8s kubectl get pods -n concrntで動いているpodがDBのみか確認。
  3. microk8s kubectl exec -it concurrent-db-0 -n concrnt -- bashでDBのpodに入る
    DBのpod名がconcurrent-db-0とことなる場合は変える
  4. pg_dump -Fc -U postgres concrnt > concrnt.dumpでダンプする
    pg_dump -U postgres concrnt > concrnt.dumpだとスクリプト形式でダンプできる
  5. exitでpodから抜ける
  6. microk8s kubectl cp -n concrnt concurrent-db-0:{pod内のdumpしたファイルパス} {コピー先のパス}でpodから取り出す。
  7. 構築時に利用したconcrnt-kustomizeのvalue.xmlとdumpしたファイルを取り出しておく。
  8. microk8s stopでmicrok8sを停止する。
    ※microk8sで他のアプリケーションを構築している場合は、microk8sを停止せずにconcrntに関するpodすべてを停止してください。

移動先にリストアする

  1. 移動元でdumpしたファイルとconcrnt-kustomizeのvalue.xmlをコピーしておく。
  2. Step1 kubernetesのセットアップの通りに、移動元と同じvalue.xmlを使って構築する。
  3. microk8s kubectl get deployments -n concrntで出てくるdeploymentをDB以外すべて止める。
    止めるコマンド:microk8s kubectl scale deployment {deployment名} --replicas=0 -n concrnt
  4. microk8s kubectl get pods -n concrntで動いているpodがDBのみか確認。
  5. microk8s kubectl cp -n concrnt {dumpしたファイルパス} {DBのpod名}:/tmp/backup.dumpでdumpしたファイルをpodにコピーする
  6. microk8s kubectl exec -it concurrent-db-0 -n concrnt -- bashでDBのpod内に入る。
  7. すでにあるデータベースのテーブルを消したいので、deletedb -U postgres concrntで一度データベースを削除する。
  8. createdb -U postgres concrntでもう一度作る
  9. pg_restore -Fc -U postgres -d concrnt /tmp/backup.dumpでリストアする。
  10. 止めてたdeploymentsを動かす。
    動かすコマンド:microk8s kubectl scale deployment {deployment名} --replicas=1 -n concrnt
  11. microk8s kubectl get pods -n concrntで正常に稼働しているか確認する。
  12. 移動完了

Step2 アクセスできるようにするは移動元でCloudflare Tunnelsを利用していた場合は行う。

動作確認

concrnt.worldにアクセスして、サーバーが正常に動作しているか確認してください。

Discussion