前回はk8sのノード作成まで行ったので、とりあえずDeploymentを使用してpodを作成して動かしてみます。
Kubernetesを動かす(1) k8sインストール編
Ubuntu22.04LTS + Kubernetes1.28.3
人も登録できるMisskeyサーバーを立てたいな~という気持ちが湧いてきたのでとりあえずKubernetes(k8s)を仮想環境で試そう!というコーナーです。
構想としては
- マスター1台、ワーカー3台
- rook/cephで分散ストレージクラスを作る
- PosgreSQLはCrunchy PGOでバックアップ周りや自動フェイルオーバーを、pgpool-IIで負荷分散を行う
- pgroonga拡張の導入
- Ingressで証明書周りの設定
あたりを色々試したいです。
PostgreSQLのチューニングなどは本番環境を動かしてから弄ると思うので、とりあえずk8sの構成のyamlファイルを書いたりなどざっくりと勉強したいです。
〆所持チェッカーリニューアル
メギド所持率チェッカー〆所持チェッカーをreactで書き直してリニューアルしました。

- クラスやスタイルでの絞り込み機能の実装
- 入手方法、実装日表示
- 実装日順ソート
などを追加しました。
reactもTypescriptも初めて触ってかなりレンダリングに無駄があると思うのでちょっとずつ改修していきたいです。
今年はメギド6周年/72ヶ月祝いなので楽しみです🎉
MisskeyでMiniO(オブジェクトストレージ)を使用する
やってみたかったので
オブジェクトストレージ
Misskeyのドライブにアップロードした画像などのデータは./files/フォルダの中でこんな感じになっています

なんとなくthumbnailはわかりますけどよくわかんないですね…。
オブジェクトストレージといって、ファイルを階層化させず、オブジェクト単位で保存し扱いやすくさせる形式で保存されています。
オブジェクトストレージはサービスによっては保存したファイルの冗長性を高めたり、負荷を分散させたりできます。Amazonのs3だったり、Google Cloud Storageだったり、CDNサービスのCloudflareも最近サービスを始めました。保存の料金だったりデータの転送などに料金がかかったりします(内容によって無料も有り)。料金の見直しなどで別なオブジェクトストレージサーバーに移ることもあるため、現在大抵のオブジェクトストレージはAmazon s3と互換性のある形式で作成されています。
Misskeyでは外部のオブジェクトストレージが使えるので、フリーのs3互換オブジェクトストレージMiniOをインストールして使ってみました。
注意:後からオブジェクトストレージを設定すると今までMisskeyサーバー上に上げていた./files/内のファイルにはアクセス出来なくなります。
Filebeat→Logstash→Elasticsearch→KibanaでNginxのログを可視化する
面白そうだったので
- Filebeat – 軽量ログ収集ツール
- Logstash – データを変換し一元化してくれるツール
- ElasticSearch – 全文検索や統計を取ってくれるツール
- Kibana – ブラウザでアクセスして上記を可視化したり設定変更できるGUI
全て同じElastic社が作っているので連携がスムーズです。
ホストOSのNginxのログをfilebeatで収集→Logstashで加工→ElasticSearchで統計→Kibanaで表示するDocker composeを作ります。
フレッツ光クロスで自宅サーバーのサイトを公開しよう
はじめに

個人サイトを自宅サーバーから公開するぞ~!と意気込んだところ、そういえば新居の契約を最新のフレッツ光クロスにしていました。IPアドレスはOCNバーチャルコネクトというシステムで割り振られていて、自宅サーバーをサイト公開できるMyDNSの設定が上手く行かなかったので、試行錯誤した奮闘記です。IPv4通信のみになります。
自分の理解の整理の為に、個人サイトを公開する方法いろいろと、インターネットの基本からまとめてみます。
DockerのPostgreSQL 15にpg_rmanを入れて定期自動実行
2023/09/26更新 Ubuntu Server 22.04 LTS / PostgreSQL 15
動機
pg_rmanでオンラインバックアップを取りたいのにweb上で見かけたライブラリをインストールしてもPostgreSQL15だと上手く動かなかったので、その辺成功したメモ
Dockerfileの作成
Miskkeyで使うDBのDockerfile(イメージにはpostgres:15-bookwormを使用)に以下を追加
実際には前回のPGroonga導入で作成したDockerfileに追記しています
スクリプトはDockerfileと同じフォルダに作成
Dockerfile
Tiniを入れてPostgreSQLのDocker内のPIDが1にならないようにします。リストアするときにPostgreSQLを停止しないと行けないのですが、PIDが1になっているとPostgrSQLの停止=Dockerコンテナ自体が停止してしまうためです。
# Add Tini
ENV TINI_VERSION v0.19.0
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
RUN chmod +x /tini
ENTRYPOINT ["/tini", "--"]
# pg_rman install
RUN apt update
RUN apt install -y build-essential libpq-dev git zlib1g-dev
RUN apt-get update
RUN apt-get -y install postgresql-client-15 postgresql-15 postgresql-server-dev-15 libpq-dev
RUN apt-get -y install libpq-dev libselinux1-dev liblz4-dev libpam0g-dev libkrb5-dev libreadline-dev libzstd-dev
RUN git clone https://github.com/ossc-db/pg_rman.git /tmp/pg_rman && \
cd /tmp/pg_rman && \
make && make install && \
rm -rf /tmp/pg_rman
CMD ["docker-entrypoint.sh", "postgres"]backup_script.sh
#!/bin/bash
BACKUP_DIR="/var/lib/postgresql/backup"
DB_DIR="/var/lib/postgresql/data"
ARCHIVE_DIR="/var/lib/postgresql/archive"
MODE="$1"
/usr/pgsql-15/bin/pg_rman backup --backup-mode=$MODE -b $BACKUP_DIR -D $DB_DIR -A $ARCHIVE_DIRcronでバックアップを定時実行しています
WordPress移行日記
Ubuntu 22.04 LTS
独自ドメインにwordpressを移行しました。プラグイン等は使っていません。
DockerでWordpress+MariaDBをインストール、ホストOS側のNginxでリバースプロキシを設定しています。
プラグインを使用して移行しようと思ったら上手く行かなかったので自力移行です。(;o;)オヨー
VPSサーバーを独自ドメインで公開する
できたよ~~ https://estampie.work/
まだ何もないのですが設定メモ
このあとやること:MiniOでオブジェクトストレージ鯖構築、wordpress移行、Misskey個人鯖インストール
独自ドメイン取得
お名前.comにて取得しました。わ~い
VPSサーバー側設定
さくらのVPS 2Gプランを利用しています。
OS選択でUbuntu server 22.04 LTSをインストール、以下ざっくり設定
MisskeyにPGroongaを導入してAND/OR/NOT検索を行う&cwも検索に含める
Ubuntu22.04LTS / PostgresSQL15 / Misskey v13.14.2
※2023/09/26更新 Misskey内で完結するように割と修正
Misskey内の検索を強化したいもののMeilisearchの形態素分析がいまいちで検索したい語が探せない(「あんぱん」で「あんぱんまん」がヒット出来ない)ので、PostgresSQL拡張の日本語全文検索拡張PGroongaの導入メモです。
またnote.textだけでなくnote.cwの注意書き部分も検索範囲にします。
PGroongaを使って自鯖のMisskeyで快適にエゴサする tamainaさんの記事を参考にさせて頂いています。