Slide 1

Slide 1 text

Mastodon on Kubernetes Mastodon Kubernetes Meetup Tokyo #4 on Kubernetes

Slide 2

Slide 2 text

ABOUT ME INTRODUCTION AYA IGARASHI @Ladicle NTT Communications Software Engineer

Slide 3

Slide 3 text

ABOUT ME INTRODUCTION SoftwareDesign Linux入門 コンピュータはどうやって通 信するのか? 新人さんにプレゼントし てください :D

Slide 4

Slide 4 text

を知っていますか? Mastodon

Slide 5

Slide 5 text

ここ1週間 やたらと話題のアレです

Slide 6

Slide 6 text

AGENDA INTRODUCTION Mastodonとは? 02 01 03 04 OVERVIEW DEPLOYING DEMO SUMMARY Kubernetes上でどうやって構築するのか? 時間があれば実物(?)みせます まとめ

Slide 7

Slide 7 text

Mastodonとは? OVERVIEW ● 見た目がTweetDeckなOSSのSNS ● OStatusをサポートしている 特徴 管理 ● Githubのtootsuite/mastodon

Slide 8

Slide 8 text

● Atom ○ コンテンツ配信(RSSの仲間)と編集用 ● Activity Streams ○ 記事情報以外にも対応したAtomの拡張 ● Salmon ○ 分散した記事に対するコメントを付ける ● Webfinger ○ ユーザ(人)を識別するURI ● PubSubHubbub ○ 変更をリアルタイムに通知するPub/Subモデル OStatusとは? OVERVIEW 構成テクノロジ例 対応ソフトェア ● GNUsocial ● Mastodon ● Diaspora etc... W3Cで定められている複数のテクノロジを組み合わせた分散マイクロブロ ギングのためのオープンな仕様のこと。(XML全盛期感) Mastodonでなくても OStatus対応ならリモート フォローできるよ

Slide 9

Slide 9 text

Mastodonの構成 OVERVIEW /api/v1/streaming /*

Slide 10

Slide 10 text

Kubernetes 上に乗せると どうなるのか?

Slide 11

Slide 11 text

MastodonのChart DEPLOYING https://github.com/Ladicle/mastodon-chart 今回Kubernetes上に建てたMastodonのHelm(k8s用のパッケージマ ネージャ)Chartは公開しているのでご利用ください :)

Slide 12

Slide 12 text

Kubernetes上の構成 DEPLOYING Ingress Controller Kube lego service service service service service ReplicaSet ReplicaSet ReplicaSet ReplicaSet ReplicaSet assets system data data Deployment Hook CronJob PersistentVolume (Pod) (Pod) mount mount

Slide 13

Slide 13 text

Kubernetes上の構成 DEPLOYING Ingress Controller Kube lego service service service service service ReplicaSet ReplicaSet ReplicaSet ReplicaSet ReplicaSet assets system data data Deployment Hook CronJob PersistentVolume (Pod) (Pod) 日時実行の CleanUpタスク Install / Upgradeに Hook Let’sEncrypt対応

Slide 14

Slide 14 text

ルーティング DEPLOYING /api/v1/streaming /* service service Ingress Controller Simple fanout Name based virtual hosting mastodon.ladicle.com

Slide 15

Slide 15 text

ルーティング DEPLOYING /api/v1/streaming /* service service Ingress Controller mastodon.ladicle.com ladicle.ddns.net CNAMEで DDNSドメインへ

Slide 16

Slide 16 text

Kubernetes最高! DEPLOYING compose使うと手動でアップデートのたびにコマンドを打つ必要がある が、KubernetesにはEventHookやCronJobでコマンド流せるので自動 化できる 毎回やるのは面倒だね!

Slide 17

Slide 17 text

おわりに SUMMARY ● Kubernetes上でもMastodonできる! ● 色々な機能を使うのでk8sの練習に ● 個人インスタンスで脱中央集権化 ● 自ドメインでアカウント証明 まとめ ● インスタンスのスケールアウト ● Prometheusによるモニタリング 次やること

Slide 18

Slide 18 text

参考リンク REFERENCES ● tootsuite/mastodon ○ https://github.com/tootsuite/mastodon ● Atom ○ https://www.ietf.org/wg/concluded/atompub ● OStatus ○ https://www.w3.org/community/ostatus/wiki/Main_Page ● Salmon Protocol ○ http://www.salmon-protocol.org/ ● WebFinger ○ https://webfinger.net/ ● PubsubHubbub ○ https://github.com/pubsubhubbub/ ● Activity Stream ○ http://activitystrea.ms/

Slide 19

Slide 19 text

Thanks For Watching! See you next time