🖥️
Concrntサーバーの移動
ConcrntというSNSのお一人用サーバーを立てました。
あらかじめサーバー移動手順を調べてやってみたので、まとめました。
Concrntって何?って方は公式の説明を見てね。
移動元のデータベースのdump
-
microk8s kubectl get deployments -n concrntで出てくるdeploymentをDB以外すべて止める。
止めるコマンド:microk8s kubectl scale deployment {deployment名} --replicas=0 -n concrnt -
microk8s kubectl get pods -n concrntで動いているpodがDBのみか確認。 -
microk8s kubectl exec -it concurrent-db-0 -n concrnt -- bashでDBのpodに入る
DBのpod名がconcurrent-db-0とことなる場合は変える -
pg_dump -Fc -U postgres concrnt > concrnt.dumpでダンプする
pg_dump -U postgres concrnt > concrnt.dumpだとスクリプト形式でダンプできる -
exitでpodから抜ける -
microk8s kubectl cp -n concrnt concurrent-db-0:{pod内のdumpしたファイルパス} {コピー先のパス}でpodから取り出す。 - 構築時に利用したconcrnt-kustomizeのvalue.xmlとdumpしたファイルを取り出しておく。
-
microk8s stopでmicrok8sを停止する。
※microk8sで他のアプリケーションを構築している場合は、microk8sを停止せずにconcrntに関するpodすべてを停止してください。
移動先にリストアする
- 移動元でdumpしたファイルとconcrnt-kustomizeのvalue.xmlをコピーしておく。
- Step1 kubernetesのセットアップの通りに、移動元と同じvalue.xmlを使って構築する。
-
microk8s kubectl get deployments -n concrntで出てくるdeploymentをDB以外すべて止める。
止めるコマンド:microk8s kubectl scale deployment {deployment名} --replicas=0 -n concrnt -
microk8s kubectl get pods -n concrntで動いているpodがDBのみか確認。 -
microk8s kubectl cp -n concrnt {dumpしたファイルパス} {DBのpod名}:/tmp/backup.dumpでdumpしたファイルをpodにコピーする -
microk8s kubectl exec -it concurrent-db-0 -n concrnt -- bashでDBのpod内に入る。 - すでにあるデータベースのテーブルを消したいので、
deletedb -U postgres concrntで一度データベースを削除する。 -
createdb -U postgres concrntでもう一度作る -
pg_restore -Fc -U postgres -d concrnt /tmp/backup.dumpでリストアする。 - 止めてたdeploymentsを動かす。
動かすコマンド:microk8s kubectl scale deployment {deployment名} --replicas=1 -n concrnt -
microk8s kubectl get pods -n concrntで正常に稼働しているか確認する。 - 移動完了
Step2 アクセスできるようにするは移動元でCloudflare Tunnelsを利用していた場合は行う。
動作確認
concrnt.worldにアクセスして、サーバーが正常に動作しているか確認してください。
Discussion