はじめに
せっかくお家 kubernetes を作ったので実際に何かを動かしたいですよね。 そこで、n 番煎じな記事ですがおひとり様 Misskey を立てたので実際に行った内容について自分用のメモとして記録を残します。
成果物
タイミングによってはサーバが落ちてアクセスできないかもしれません
https://misskey.tunamaguro.dev/
環境
- 仮想化環境: Proxmox VE 8.0.2
- control plane: 1 台
- node: 3 台
詳細については前回の記事を参照してください
全体構成
全体構成は上のようになっています。かなりあるあるな構成だと思いますが、サービスを外部に公開するのにCloudflare Tunnel
、
DB の構築にCloudNativePG
を利用しています。それ以外はすべて Deployment として作成しました。
Redis
は気分で完全互換を謳っているKeyDB
に差し替えていますが、今のところ問題なく動作しています。
そのうち高速だというDragonfly
でも動作するか試してみる予定です。
詰まった点
お家 kubernetes では StorageClass としてnfs-subdir-external-provisionerを利用しているのですが、 これを利用して Redis を立ち上ることができず詰まっていました。設定として下のようなファイルを使っていましたが、エラーが発生していました。
軽く調べた限り、使用しているイメージの起動時にデータを保管している/data
の所有者を変更しようとして
上記のエラーになっているようでした。そこで、起動時のコマンドを直接指定して起動するようにしたところ発生しなくなりました。
その他の設定ファイル
とくに書くことがなくなったので設定ファイルをつらつらと書いていきます。マウントしているコンフィグや PVC、Secret は各自で読み替えてください。
- Misskey 本体
インスタンスを複数に増やした時のために Affinity を一応設定しています。
- CloudNativePG
バックアップにはCloudflare R2
を使っています。この個所は設定しなくても動作すると思います。
- Redis
残りは適当な設定ファイルや Service なので省きます。
おわりに
偏見としてこういったサーバ系には比較的スペックの高い PC が必要なイメージでしたが、思ったよりリソースを使っていなくて驚いています。 すべてのポッドを合わせても 2GB 程度です。
せっかく立てたので作業中の進捗などをつぶやくようにしていきたいですね。まあ、Obsidian との使い分けが難しそうですが…