おうちKubernetesで実際何動かすの
chatagiriiiです。
こちらの記事 でおうちKubernetesの構成を考え、実際にクラスタ組んだよー って所までご紹介しました。
うまいことmanifestを書いてPodを建てるだけでSSL対応してくれたりと大変便利だなと感じる今日この頃です。
しかし、目的も無く作ったはいいものの、実際何を動かそうと思うと困りがちなのは自宅鯖あるある。
ので、こんなの動かしてるよー なご紹介と、こんなの動かしてるんだっけ、と自分の中の整理をするための記事です。
今回はkube-coreなPod(etcdとかapiserverとか)は紹介為ずskipとして、アプリケーション的な所を紹介します。
1. Gitlab
- Docker Image: https://hub.docker.com/r/gitlab/gitlab-ee/
- 使い道: プライベートなGitLab.
- インストールした方法: helm
- デモ登録: https://about.gitlab.com/free-trial/
git repository としての機能は勿論、kanbanによるタスク管理、gitlab-ciを使ったci/cd自動化、各種Webサービスへの通知連携等、大変べんりなGitLab.
自分は私的利用の他、中の良い友人/知人を招待してteaming的に使っていたりします。
GitLab公式からsaas版の30日無料トライアルも提供されてたりもするので。
デモとして触ってみて、気に入れば是非おうちないしどこかに作ってみてください。
chatagiriii.comのgitlab利用者も募集中です。 ご連絡ください。
2. Bookstack
- Docker Image: https://hub.docker.com/r/linuxserver/bookstack
- 使い道: ScrapBox的な日々のメモ書き場、日記帳
- インストールした方法: kubernetesのmanifest書いた
- デモ: https://demo.bookstackapp.com/
Shelves, Book, Page という単位で記事を書けるWiki.
Shelves
|- Book
|- Page
と3段構成で実記事(Page)と、記事コンテナ(Book)と、記事コンテナのコンテナ(Shelves)を管理する形式。
使い方の例として。例えば技術書を読んで、ページごと写経か何かをするとき。
- Shelves: 技術書の名前
- Book: 第n章 のくくりを作る
- Pages: 第n章のnページ目 についての内容を、それぞれのページごとに書く
のような具合。
ユーザ登録して、他人のアクティビティダッシュボード等も表示できるのでめちゃめちゃ便利に使っています。
デモもこちらにあるので、気になった方はぜひ試してみてください。
chatagiriii.comのbookstack利用者も募集中です。 ご連絡ください。
3. Minio
- Docker Image: https://hub.docker.com/r/minio/minio/
- 使い道: 内部/外部にファイル共有したいとき。
- インストールした方法: kubernetesのmanifest書いた
- デモ: https://play.minio.io:9000/minio/login
S3互換のオブジェクトストレージ。
WebUIファイルブラウジング/アップロードする機能もあり。
外出てるときに見たいファイル置いておいたり、共有用ワンタイムURLを発行して認証無しでファイル共有したりと、
痒い所に手が届く仕様になってます。
公式デモもあるので気になった方はぜひ。
4. RainLoop
- Docker Image: https://hub.docker.com/r/hardware/rainloop/
- 使い道: 独自ドメインのメール見る/送るときのWebメーラ.
- インストールした方法: kubernetesのmanifest書いた
- デモ: なし
比喩する単語が浮かばないぐらい素直なWebメーラです。
各機能へのアクセス性、レスポンスの速さ、UIの見やすさ等大変優秀で、OSSでWebメーラ建てるならこれ一択かなぁ。といった感じ。
Rainloopのserviceを母艦のネットワークに直結させ、smtpやimapの認証を母艦のユーザアカウントを使って掛けています。
自分で取ったドメインでメールしたい方 かつWebメーラが欲しい方にはイチオシなので、ぜひ使ってみて下さい。
5. WordPress
- Docker Image: https://hub.docker.com/_/wordpress
- 使い道: このブログ
- インストールした方法: kubernetesのmanifest書いた
- デモ: このブログ?
もはや説明不要でしょう。いつものCMSです。
このブログの前身には静的サイトジェネレータのHugoを使っていたのですが、
なんだかんだでWordpressが便利なので切り替えてみました。
表示速度は明らかに落ちましたけどね。
6. MatterMost
- Docker Image: https://hub.docker.com/r/mattermost/mattermost-team-edition
- 使い道: gitlabの通知先、Cron処理結果の通知先
- インストールした方法: kubernetesのmanifest書いた
- デモ: なし
Slack cloneのメッセンジャーアプリ。
使い勝手はほぼSlackと同等と言って良いでしょう。
Slackとの大きな違いとして、無料版でもメッセージ上限数が無い所でしょう(ストレージの許す限り)。
自分の使い道はGitlab-ciの結果通知、母艦で動かしているCronの処理結果通知ですね。
特に通知系は直ぐにSlackのメッセージ上限に当たるので、1つ立てておくと便利です。
7. 他
DockerHubのリンクだけ
- Mysql: https://hub.docker.com/_/mysql
- MariaDB: https://hub.docker.com/_/mariadb
- ruby: https://hub.docker.com/_/ruby
- centos: https://hub.docker.com/_/centos
- centos/systemd: https://hub.docker.com/r/centos/systemd
(2021/12/22追記 )
8. filerun
- Docker Image: https://hub.docker.com/r/filerun/filerun
- 使い道: 自宅ファイルサーバ
- インストールした方法: kubernetesのmanifest書いた
- デモ: https://filerun.com/demo
モダンなUIでWebからもアクセスできるファイルサーバ。
自宅ファイルサーバを作成したい人向けです
権限管理、ワンタイムURL発行、2段階認証など痒いところに手が届くファイルサーバになっています。
無料版は3ユーザまでしか作成できないので、必要に応じて課金してみてください。
9. nsd
- Docker Image: https://github.com/orgs/the-kube-way/packages/container/package/nsd
- 使い道: 自宅LAN内DNS
- インストールした方法: kubernetesのmanifest書いた
- デモ: なし
下で紹介するunboundと合わせて宅内DNSサーバを作成するのに使いました。
kubernetes+nginx-ingress-controllerを使っていると、ingress回りを書くことが多く。
その都度手元端末のhostsファイルにドメインとlocal IPの紐づけ書くのが面倒くさかった為作っちゃいました。
こちらの記事でもmanifestごと紹介しているので見てみてください。
10. unbound
- Docker Image: https://hub.docker.com/r/mvance/unbound
- 使い道: 自宅LAN内DNS
- インストールした方法: kubernetesのmanifest書いた
- デモ: なし
上で紹介しているnsdと合わせて宅内DNSサーバを作成するのに使いました。
こちらの記事でもmanifestごと紹介しているので見てみてください。
まとめ
以上、おうちKubernetesで動かしているサービスの紹介でした。
また、紹介したサービスのデプロイ時に
- Deployment設定
- Serviceの設定
- Ingress周りの設定
- PersistentVolumeによる諸々永続化
- cert-manager+google cloud dnsで自動Let's Encryptの証明書取得 && 自動SSL公開
を実施してあります。
個人的に特にうれしいのは一番下の自動SSL対応で、
何かサービス動かしてみたいなぁ、と思ったときに勝手に証明書まで入れてくれるのには感激でした。
気に入ったものがあった方はぜひお試してみてください。